5

同じ JFrame に 3 つ以上の Panel を含めることで問題が発生したプロジェクトに取り組んでいます。

コミュニティは、これを実装するための例を示したり、Java Swing のニーズに関連する優れたチュートリアルやガイドを参照したりできますか?

4

3 に答える 3

8

1 つのフレームに 2 つのパネルを追加するとします。

親 JFrame のレイアウトを設定し、2 つのパネルを追加します。次のようなもの

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 に追加するパネルの数に制限はありません。より高いレベルで見た場合、それらはすべてコンテナーであることを理解する必要があります。

于 2010-03-27T10:29:03.180 に答える
3

各フレーム/パネルを同じサイズにする場合は、1(列)と2(行)のグリッドでGridLayoutを使用します

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);  
于 2010-03-27T13:48:59.583 に答える
2

//カード レイアウトを使用して、メイン パネルに複数のカード パネルを追加することもできます。

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");
}
于 2013-02-17T07:20:03.437 に答える