我們正在研究一個項目,在這個項目中,我們遇到了在同一個JFrame上包含兩個以上面板的問題。我們想要的是一個面板位於另一個面板上方。在JFrame中包含兩個以上的面板?
社區可以幫助舉一個例子來實現這個,或者將我引薦到一個與我們的Java Swing需求相關的好教程或指南?
我們正在研究一個項目,在這個項目中,我們遇到了在同一個JFrame上包含兩個以上面板的問題。我們想要的是一個面板位於另一個面板上方。在JFrame中包含兩個以上的面板?
社區可以幫助舉一個例子來實現這個,或者將我引薦到一個與我們的Java Swing需求相關的好教程或指南?
假設你想兩個面板添加到一個框架:
設置你的父母的JFrame的佈局,並新增兩個面板。像下面
JFrame frame = new JFrame();
//frame.setLayout(); - Set any layout here, default will be the form layout
JPanel panel1 = new JPanel();
JPanel panel2 = new JPanel();
frame.add(panel1);
frame.add(panel2);
假設你想添加一個面板比其他
JFrame frame = new JFrame();
JPanel panel1 = new JPanel();
JPanel panel2 = new JPanel();
frame.add(panel1);
panel1.add(panel2);
有上板的數量沒有限制要在JFrame中添加。你應該明白,從更高的層面上看,它們都是容器。
但這裏的問題是,默認佈局是「FlowLayout」,並不會給他想要的結果 - 好吧,我誤解了你的文章的第一部分,但是這裏需要的是需要非常具體的佈局,而不僅僅是「設置佈局」 – Wintermut3 2010-03-27 13:51:19
如果您希望每個幀/面板相同的尺寸,使用的GridLayout,用1(列)和2的網格(行)
Frame myFrame;
GridLayout myLayout = new GridLayout(2,1);
myFrame.setLayout(myLayout);
Panel p1;
Panel p2;
myFrame.add(p1);
myFrame.add(p2);
,如果面板被不同尺寸使用BorderLayout的....設定上限框架「北」和下一個「南」或「中心」
Frame myFrame;
myFrame.setLayout(new BorderLayout());
Panel p1;
Panel p2;
myFrame.add(p1, BorderLayout.NORTH);
myFrame.add(p2, BorderLayout.CENTER);
//你也可以使用卡片佈局,使您可以在添加多個卡板主面板。
CardLayout cl;
JPanel main,one,two,three;
JButton button1,button2;
cl = new CardLayout();
main.setLayout(cl);
main.add(one,"1");
main.add(two,"2");
main.add(three,"3");
cl.show(main,"1");
public void actionPerformed(ActionEvent e){
if(e.getSource() == button1)
cl.show(main,"2");
else if(e.getSource() == button2)
cl.show(main,"3");
}
什麼佈局管理器(FlowLayout,BorderLayout,GridLayout,GroupLayout等)在你的框架中使用? – 2010-03-27 10:46:18