Java の GUI プログラミングでは、JFrame にコンポーネントを追加するときに、デフォルトで BorderLayout を理解するために。制約を指定せずにコンポーネントを追加すると、コンポーネントは自動的に BorderLayout の CENTER ゾーンを占有します。ただし、この中央領域には 1 つのコンポーネントしか表示できません。
そのため、提供されたコード スニペットでは、JPanel である可能性が高い最上位のコンポーネントが CENTER に配置され、他のコンポーネントは隠されています。
この問題を解決してすべてのコンポーネントを表示するには、コンポーネントを JFrame に追加するときに適切な制約を指定する必要があります。 BorderLayout は、NORTH、SOUTH、EAST、WEST、CENTER などのさまざまな制約を提供します。
すぐに効果を得るには、次のコードを利用できます。
<code class="java">f.add(top, BorderLayout.PAGE_START); f.add(mid); f.add(bot, BorderLayout.PAGE_END);</code>
これらの制約を設定すると、上部のパネルは上部の位置 (PAGE_START) を占め、中央のパネルは残りのスペースを埋め (制約なし)、下部のパネルは下部に配置されます (PAGE_END)。
制約の問題の解決とは別に、いくつかの追加の最適化を検討できます:
以上がJFrame に最上位コンポーネントのみが表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。