1

2 つのパネルがあり、それらを JFrame に表示したいのですが、このようにしようとすると、2 番目のパネルしか表示されません。誰か助けてくれませんか?:(

import javax.swing.JFrame;

public class MainWindow {

CardLayout layout;
JFrame frame;
Player panel1;
Block panel2;

public MainWindow() {
    frame = new JFrame("Rechteck");
    panel1 = new Player();
    panel2 = new Block();
    panel1.addKeyListener(new KeyListen(panel1));
    frame.add(panel1);
    frame.add(panel2);
    frame.setSize(500,500);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setLocationRelativeTo(null);
    frame.setVisible(true);
}}
4

2 に答える 2

4

両方のパネルを に追加しました —その場所BorderLayout.CENTERJFrame占有できるのは 1 つだけです。この場合、これが最後に追加されpanel2ます。

パネルがスペースを均等に占有できるようにするには、次を使用できますGridLayout

frame.setLayout(new GridLayout(2, 1));

余談: Swing でコンポーネントのキー イベントを登録するときは、キー バインディングを使用することをお勧めします。

于 2013-01-07T21:49:20.347 に答える
1

JPanel を作成し、それを JFrame に追加します。新しいパネルに panel1 と panel2 を追加します。JFrame は子を 1 つだけ持つことができ、通常は JFrame.setContentPane() を呼び出して設定します。

于 2013-01-07T21:45:54.263 に答える