Java Swing Gridlayout垂直制約
-
28-10-2019 - |
質問
Gridlayout Verticalyにコンポーネントを追加することは可能ですか?私は前の次の次のものを意味しますか?
ありがとうございました
解決
いいえ、少なくとも私が知っていることは、ボトムアップから垂直に積み重ねることができるレイアウトはありません。垂直スタッキングが必要な場合は、 GridLayout
単一の列またはaで BoxLayout
垂直軸付き。パネルをネストし、レイアウトを組み合わせることで、必要なものを簡単に取得する必要があります。たとえば、垂直レイアウトを備えたパネルがすべて水平容器に配置されています。
他のヒント
BoxLayoutやGridlayoutのようなレイアウトは、使用するときに上から下までコンポーネントを表示します。
panel.add( someComponent );
ただし、いつでも使用できます。
panel.add(someComponent, 0);
上部にコンポーネントを挿入します。
この答えは関連していませんが グリッドレイアウト, 、Jgoodiesフォームのレイアウトを使用することを強くお勧めします。その非常に柔軟です。 http://www.jgoodies.com/freeware/forms/index.html
/* 1 2 3 4 5 6 7 8 9*/
String col1 = "left:max(20dlu;pref), 3dlu, 70dlu, 15dlu,left:max(10dlu;pref),10dlu, 70dlu, 70dlu, 70dlu";
/* 1 2 3 4 5 6 7 8 */
String row1 = " p, 5dlu, p, 3dlu, p, 5dlu, p, 9dlu, ";
FormLayout layout = new FormLayout( col1, row1 + row2 + row3 + row4 + row5 + row6);
JPanel panel = new JPanel(layout);
panel.setBorder(Borders.DIALOG_BORDER);
// Fill the table with labels and components.
CellConstraints cc = new CellConstraints();
panel.add(createSeparator("Registration Information"), cc.xyw(1, 1, 7));
panel.add(new JLabel("Patient ID"), cc.xy(1, 3));
panel.add(pid, cc.xyw(3, 3, 1));
panel.add(new JLabel("Date and Time"), cc.xy(5, 3));
COLおよび行に設計された定義済みのレイアウトの場合、各コンポーネントをプロットして各コンポーネントをプロットできます。 垂直方向の配置でさえ。 ホワイトペーパーを読む: http://www.jgoodies.com/articles/forms.pdf
所属していません StackOverflow