を作成しました-そのフレームの特定の位置にJFrame
4 を追加したいと思います。JPanel
フレーム内のパネルの位置を設定するにはどうすればよいですか?
5 に答える
ロジックに(おそらくネストされた1 ) レイアウトを使用します。詳細については、コンテナ内のコンポーネントのレイアウトを参照してください。次のことができます。
- コンストラクターにデフォルトの間隔を含める (多くの場合)
- コンポーネントを表示するために必要な GUI のサイズを計算します (アプリケーションがデプロイされているシステムに関係なく、PLAF に関係なく)。
追加の間隔は、EmtpyBorder
子コンポーネントに を追加することで編成できます。
- ネストされたレイアウトの例を参照してください
コンポーネントをコンテナーに配置することは、Swing では非常に複雑な問題です。コンポーネントの正確な場所を定義する代わりに、通常、特定の方法でコンポーネントを配置するレイアウト マネージャーを使用します。
さまざまなレイアウト マネージャーについて (視覚的な) 手がかりを得るために読むべきチュートリアルは次のとおりです: レイアウト マネージャーのビジュアル ガイド
ただし、Swing の標準レイアウト マネージャーは、より複雑なレイアウトでは扱いにくい場合があります。ネストされたレイアウトを使用して目的の結果を得るか、非常に強力なサードパーティ ライブラリであるJGoodies Formsを使用できます。もちろん、欠点は、さらに別のライブラリを学習する必要があることです。したがって、大規模なプロジェクトにのみお勧めします。
4つの場所の場合、BorderLayout
デフォルトでCENTREを使用できますが、コンポーネントの配置にEAST、WEST、NORTH、SOUTHの場所もあります。setLocation
の場合は、を使用してパネルを適切な場所に配置することもできますlayout isn't used
。
2005年に開発された私のNetBeansチームを使用GroupLayout
し、現在googleが無料で提供しているWindowsBuilderProを使用することをお勧めします。
私にとっては、フレームのコンテナーに GridbagLayout を設定するのが良い方法です。これを簡単に行うための視覚的な Swing GUI エディタがいくつかあります。複雑な GUI 設計タスクには、NetBeans GUI エディタまたは GWT デザイナー (https://developers.google.com/web-toolkit/tools/gwtdesigner/) を使用できます。
- Frame のレイアウトを null に設定します
setLayout(null)
- 4 つの JPanel を作成し、
setLocation
メソッドを使用してその場所を設定します - JFrameの
add
メソッドを使用してこれらのパネルを追加します