2011-02-23 9 views
6

我正在用java寫一個程序。我有一個主JPanel,它有兩個JPanel和一個Canvas。我打算在運行程序時調整Canvas的大小。當我最大化Canvas時,我希望它始終位於另一個組件的頂部。
如何爲Canvas設置此屬性?Java:在另一個頂部設置組件

+1

我假設你在談論混合Swing組件的AWT組件帆布,並引出了一個問題,爲什麼呢?你確定你真的想這樣做,你是否知道涉及的技巧和陷阱? – 2011-02-23 21:38:49

回答

19

你可以用JLayeredPanel替換你的主JPanel。分層面板可讓您指定某些子組件應該分層放置在其他子組件的上方。

即:

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); 
4

讓你的主要的JPanel一個JLayeredPane

然後你可以用setLayer(Component c, int layer)設置其他部件的層從而使它們重疊。