JMenuBar と JPanel に格納された 2 つのコンポーネントを含む JFrame 子孫ウィンドウがあります。1 つは画面の大部分を占める JTabbedPane で、もう 1 つは一連のボタンを含む小さな JPanel です。それらは次のように構成されています。
//in constructor:
menubar = new BFIDEMenuBar(this);
setJMenuBar(menubar);
content = new JPanel();
add(content);
buttons = new BFIDEButtonBar();
editors = new JTabbedPane();
content.add(buttons, BorderLayout.NORTH);
content.add(editors, BorderLayout.CENTER);
ウィンドウが特定のサイズよりも小さい場合、コンポーネントは期待どおりに配置されます。JTabbedPane が中央を占め、その上に「ボタン」JPanel が中央に配置されます。
ただし、ウィンドウのサイズが特定のしきい値を超えて変更されると、JPanel は場所を変更します。
ウィンドウを縮小すると、以前の (正しい) 位置に戻ります。
BorderLayoutの javadoc を読み、以前に使用したことがありますが、まだこの現象に遭遇していません。javadoc には、「NORTH および SOUTH コンポーネントは水平方向に引き伸ばされる可能性があります」と記載されています。しかし、これはストレッチとは見なされません。
setVisible
いくつかのリスナーと必須の 、などを追加する以外に、コンストラクターから呼び出されるメソッドはありませんsetEnabled
。
なぜこれが起こっているのか、またはそれを修正する方法について何か考えはありますか?