0

私はGUIアプリケーションを構築しており、JFrame内に2つのjcomboboxと特定のデータを表示するためのJPanelがあります。これで、メインクラスでpack()メソッドを呼び出すと、2つのjcomboboxがJPanelの横に配置されます。これは、北に配置したいので、必要ありません。もちろん、コードにハードコーディングしようとしましたが、pack()メソッドを呼び出した後は機能しません。この方法に代わるものはありますか?

4

4 に答える 4

2

NORTHにできるコンポーネントは1つだけなので、両方のComboBoxをNORTHにする場合は、それらを別のコンテナーに追加する必要があります。この別のコンテナは、NORTHに置くことができます。

(より正確なヘルプについては、ソースを投稿してください。)

于 2010-07-16T11:53:09.683 に答える
0

(この場合)のサイズを、そのサブコンポーネントの推奨サイズと推奨サイズにpack変更するだけです。サブコンポーネントの相互の相対的な実際の位置を制御するには、適切なを使用する必要があります。WindowJFrameLayoutManager

レイアウトマネージャーの使用チュートリアルを確認することをお勧めします。

于 2010-07-16T11:52:25.960 に答える
0

このpack()方法では、レイアウトが発生するだけで、何がどこに配置されているかとはまったく関係ありません。

ほとんどの場合、レイアウトマネージャーを正しく使用していません。私たちにあなたのコードを見せてください、そして私たちはあなたが間違っていることを正確にあなたに伝えることができます。

于 2010-07-16T11:53:10.837 に答える
0

setSize と setBounds でフレーム サイズを明示的に設定することで、pack の使用を避けることができます。ただし、フレーム レイアウト マネージャーがフレーム サイズを管理するため、通常は pack を使用することをお勧めします。

そうは言っても、あなたが説明している問題は、フレームのサイズ変更ではなく、レイアウトマネージャーの正しい使用に関連しているようです。Swing のさまざまなレイアウト マネージャーとその使用方法を確認してください: http://download.oracle.com/docs/cd/E17409_01/javase/tutorial/uiswing/layout/using.html

于 2010-07-16T11:56:10.070 に答える