次のコードでは、両方のパネルが見えるはずですが、黄色のものしか見ることができず、フレームのすべてのサイズが必要です。同じフレームに2つのパネルを表示する
class NewFrame extends JFrame implements ComponentListener {
public NewFrame() {
this.setSize(600, 600);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel(new BorderLayout());
//panel.setSize(300,300);
panel.setBackground(Color.pink);
JPanel panel2 = new JPanel(new BorderLayout());
panel2.setBackground(Color.yellow);
panel2.setSize(300,300);
this.add(BorderLayout.EAST,panel);
this.add(BorderLayout.CENTER,panel2);
this.setVisible(true);
}
}
感謝します。実際には同じ質問があります。たとえば、フレームのサイズを800x800に、さらに両方のパネルのsetPreferredSizeを200x200に増やしても、フレームがパネルのサイズよりも大きいにもかかわらず、黄色のパネルはフレームのサイズをすべて満たします。この現象はどこから起こりますか? – matel
@matel:説明を追加しました。 –
ありがとう、申し訳ありませんが、私はまだ誤解しています。 EASTパネルのサイズを400、センターを200に設定すると、センターはまだ大きくなります。可能な限り多くのスペースを常に満たしていると言うステートメントは、完全に正確ではないかもしれませんか? EASTのスペースは一定量に制限されていますか? – matel