Java : set a Component on top of another

2019-06-19 01:33发布

问题:

I am writing a program in java. I have a main JPanel that has two JPanel and one Canvas added on it. I aim to resize the Canvas while running the program. When I maximized the Canvas i want it to be always on top of the other component.
How can I set this property for my Canvas?

回答1:

You could replace your main JPanel with a JLayeredPanel. A layered panel will let you specify that some child components should be layered above other child components.

I.e.:

    JLayeredPane pane = new JLayeredPane();

    JLabel ontop = new JLabel("On top");
    JLabel behind = new JLabel("Behind");

    pane.add(ontop, 2, 0);
    pane.add(behind, 1, 0);


回答2:

Make your main JPanel a JLayeredPane

Then you can set the layer of the other components with setLayer(Component c, int layer) thus allowing them to overlap.