0

私は、中央に置かれたものを含む JPanel と、800*250 のサイズを持つ、BorderLayout を持つウィンドウを持っています。ボタンをクリックするだけで、JPanel が NORTH に移動し、別の JPanel が CENTER に移動するようにします。これを試しましたが、他に何もせずにウィンドウのサイズを変更しただけでした。

これを試しましたが、うまくいかないようです。

public void actionPerformed(ActionEvent e) {
            frame.setPreferredSize(new Dimension(800,550));
            frame.removeAll();
            frame.add(northpanel, BorderLayout.NORTH);
            frame.add(southpanel, BorderLayout.CENTER);
            frame.getContentPane().repaint();
            frame.getContentPane().revalidate();
            frame.pack();
        }

ノースパネルはセンターにセットする前でした。

ありがとうございました。:)

4

1 に答える 1

3

add()メソッドとremove()メソッドはオーバーライドされるため、コンテンツペインですべてが自動的に実行されます。JFrameは単なるコンテナであり、重要なのはコンテンツペインです。removeAll()メソッドはそのようにオーバーライドされません。あなたがすべきことは:

frame.getContentPane().removeAll();

詳細については、OracleのWebサイトを参照してください:)

トップレベルコンテナの使用

于 2013-01-06T18:21:57.397 に答える