2016-07-18 13 views
-2

私はJavaのスイングに取り組んでおり、UIのレイアウトがついていますJava SwingのUIコンポーネントのレイアウト

私の現在の出力は以下の通りです。

enter image description here

私はそれをlilのを修正し、下のサンプルのように間に2つのテキスト入力を追加したいです。テキスト入力を並行して実現する方法をお手伝いしてください。すべての

enter image description here

答えて

2

まず:あなたは本当にあなたのコンポーネントjComboBox2より意味のある名前を与える必要があります。

あなたの写真は、GridBagLayoutで作成するのが簡単ではありません。レイアウトによってn * mグリッドが作成され、そのグリッド内の任意の場所(テキストフィールド、ラベル、コンボボックスなど)を自由に配置できます。

例えば、あなたのjLabel4はグリッド内の0/3の位置にありますが、実際には-1のグリッド幅が何であるかはわかりませんが、まだ0/3になっていると確信しています。 gridwidthが例えば3の場合、jLabel4は0/3から2/3までの範囲になります。

この2つの行の間に何かを配置する場合は、右のグリッド座標に配置し、適切な幅と高さを与える必要があります。

しかし、悲しいことに、あなたの写真とまったく同じようにするには、上下のコンポーネントのグリッド幅を広げたり、コンポーネント自体ではなく新しい行コンポーネントを含む別のパネルを追加したりする必要があります。 GridBagLayoutが実際にどのように動作するかを理解するのに役立つかもしれないので、何とかしてみてください(たとえそれがあなたの写真に似ていなくても)。あなたが本当にそれを理解するとすぐに、あなたの写真を再現することは難しいことではありません。

+0

サンプルプログラムは一般的なコンポーネント名を与えています。はい、私はこのパネルの中に別のパネルを使用し、新しいパネルの中にコンポーネントを配置していることに気付いています。他の方法でも同じことが達成できるかどうかを知りたかっただけです。 – pankti

+0

@pankti:いいえ。 JPanel内のJPanelは、レイアウトを作成する唯一の方法です。 –

+0

まあ私が心配している限り、それはサンプルプログラムであっても意味のある名前の必要性を増やすかもしれませんが、大丈夫です。他のパネルを作成することが可能なのは技術的に真実ではありません。それはちょうど(おそらく遠くに)最も複雑で厄介なものです:D – Mark

関連する問題