3

Gridlayoutにコンポーネントを垂直に追加することは可能ですか?私は前のものの上に次のものを意味しますか?

ありがとうございました

4

3 に答える 3

3

いいえ、少なくとも私が知っている限り、下から上に垂直に積み重ねることができるレイアウトはありません。垂直スタッキングが必要な場合はGridLayout、単一の列で、またはBoxLayout垂直軸でを使用できます。パネルをネストしてレイアウトを組み合わせると、必要なものを簡単に取得できます。たとえば、垂直レイアウトのパネルはすべて水平コンテナに配置されます。

于 2012-01-16T04:49:38.887 に答える
3

BoxLayout や GridLayout などのレイアウトは、次を使用するとコンポーネントを上から下に表示します。

panel.add( someComponent );

しかし、いつでも使用できます:

panel.add(someComponent, 0);

上部にコンポーネントを挿入します。

于 2012-01-16T05:13:54.523 に答える
1

この回答はGrid layoutとは関係ありませんが、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));

設計された定義済みレイアウトの任意の場所、つまり、列と行に各コンポーネントをプロットするコードを渡すことができます。縦配置でも。 ホワイトペーパーを読む: http://www.jgoodies.com/articles/forms.pdf

于 2012-01-16T05:02:08.323 に答える