4

2 列 3 行のレイアウトを作成しようとしています。次のようなもの:

----------------------
| Username |Textbox| |
| Email    |Textbox| |
----------------------

それでも、グループが正しく管理されていると確信している場合でも、次のように単一の行になります。 単列

私は縦のグループをうまく分けています

gl_contentPanel.setHorizontalGroup(
        gl_contentPanel.createSequentialGroup()
                  .addGroup(gl_contentPanel.createParallelGroup(GroupLayout.Alignment.LEADING)
                           .addComponent(usernameLabel)
                           .addComponent(emailLabel))
                  .addGroup(gl_contentPanel.createParallelGroup(GroupLayout.Alignment.LEADING)
                           .addComponent(usernames)
                           .addComponent(email))
             );
        gl_contentPanel.setVerticalGroup(
                gl_contentPanel.createSequentialGroup()
                   .addGroup(gl_contentPanel.createParallelGroup(GroupLayout.Alignment.BASELINE)
                        .addComponent(usernameLabel)
                        .addComponent(usernames))
                   .addGroup(gl_contentPanel.createParallelGroup(GroupLayout.Alignment.BASELINE)
                        .addComponent(emailLabel)
                        .addComponent(email))
             );

何か案は?

4

2 に答える 2

4

コンテナのレイアウトを設定する必要があります - 下の 3 行目のマーク [1] を参照してください。私にはそれを見逃したようで、コンテナは FlowLayout を使用しています。

JFrame frame = new JFrame("GroupLayout Test");
GroupLayout gl_contentPanel = new GroupLayout(frame.getContentPane());
frame.setLayout(gl_contentPanel); // [1]

JLabel usernameLabel = new JLabel("User name");
JLabel emailLabel = new JLabel("Email");
JTextField usernames = new JTextField("usernames");
JTextField email = new JTextField("email");

// your snippet
gl_contentPanel.setHorizontalGroup(
        gl_contentPanel.createSequentialGroup()
                  .addGroup(gl_contentPanel.createParallelGroup(GroupLayout.Alignment.LEADING)
                               .addComponent(usernameLabel)
                               .addComponent(emailLabel))
                      .addGroup(gl_contentPanel.createParallelGroup(GroupLayout.Alignment.LEADING)
                               .addComponent(usernames)
                               .addComponent(email))
                 );
    gl_contentPanel.setVerticalGroup(
            gl_contentPanel.createSequentialGroup()
               .addGroup(gl_contentPanel.createParallelGroup(GroupLayout.Alignment.BASELINE)
                    .addComponent(usernameLabel)
                    .addComponent(usernames))
               .addGroup(gl_contentPanel.createParallelGroup(GroupLayout.Alignment.BASELINE)
                    .addComponent(emailLabel)
                    .addComponent(email))
         );
// end of your snippet

frame.pack();
frame.setVisible(true);
于 2012-07-01T18:43:11.713 に答える
3

参考までに、2列3行のレイアウトの実例を以下に示します。これは参考になるかもしれません。

画像

于 2012-07-01T19:08:00.867 に答える