需要帮助使用GridBagLayout

时间:2013-06-16 06:38:03

标签: java swing layout-manager gridbaglayout

我想在ID下面设置密码标签和文本字段。但是我对GriBagLayout来说是个新手。

我希望你能帮助我。

这是我的代码:

   class LoginPanel extends JPanel {//login components
        private JButton exitbtn = new JButton("Exit");
        private JLabel idLabel = new JLabel("Staff ID : ");
        private JTextField idJtf = new JTextField(10);
        private JLabel pwLabel = new JLabel("Password : ");
        private JPasswordField pwJtf = new JPasswordField(10);
        LoginPanel() {
           setOpaque(false);
           setLayout(new GridBagLayout());
           setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
           //add(new JLabel("Staff ID: ")); add(new JTextField(10));
           //add(new JLabel("Password: ")); add(new JPasswordField(10));
           add(idLabel);
           add(idJtf);
           add(pwLabel);
           add(pwJtf);
           //add(exitbtn);
        }      
}

3 个答案:

答案 0 :(得分:3)

就像阅读this tutorial: GridBagLayout

一样简单

答案 1 :(得分:3)

如果您熟悉使用表格创建HTML页面,GridBagLayout应该很容易

将控件放在另一个下面就像将它们放在带有单列的表中一样。这意味着您需要将0设置为列号,将[0..3]设置为行号:

GridBagConstraints c = new GridBagConstraints();
int rowNum = 0
c.gridx = 0;
c.gridy = rowNum;
add(idLabel, c);

c.gridy++;
add(idJtf, c);

c.gridy++;
add(pwLabel, c);

c.gridy++;
add(pwJtf, c);

但是对于这种简单的布局,您可以使用其他布局管理器

答案 2 :(得分:0)

帮自己一个忙,停止使用GridBagLayout。 GridBagLayout是前一个时代的布局管理器。我会发现它存在于所有“官方”Oracle Java文档中,但大多数人现在都避免使用它(并且有充分的理由)。复杂布局的一个很好的替代方案GridBag意味着解决的是Jgoodies FormLayout(http://www.jgoodies.com/freeware/libraries/forms/)。我向您保证,您将保持理智,您的生活质量将得到显着改善: - )