GridBagLayout 右侧的 1 个组件
1 component off to the right in GridBagLayout
图形界面问题。登录组件关闭到一边。
GUI 屏幕的分辨率。出于某种原因不得不使 jtextfield 的 comp 宽度为 2。
我有一件小事,我不知道是什么原因造成的...我的登录按钮在右侧。我知道这可能是由于 jtextfields 太大,然后将第三个单元格放在它旁边,但是有什么办法可以修复它吗?还是 JCheckBox
以某种方式与第 3 行组件冲突,因为它太小了?我需要登录按钮以某种方式向右移动更多,但我认为这是不可能的,因为第二个 x 单元格有 2 个 JTextField
组件占据了所有 space.
addComp(pLogin, new JLabel("Name: "), 0, 0, 1, 1, GridBagConstraints.LINE_END);
addComp(pLogin, new JLabel("Password: "), 0, 1, 1, 1, GridBagConstraints.LINE_END);
//these are going to be formatted fields. Remember johnny remove the new jtextfield soon
addComp(pLogin, new JTextField(15), 1, 0, 1, 1, GridBagConstraints.LINE_START);
addComp(pLogin, new JTextField(15), 1, 1, 1, 1, GridBagConstraints.LINE_START);
addComp(pLogin, remember_User, 0, 2, 1, 1, GridBagConstraints.LINE_END);
addComp(pLogin, new JLabel("Remember me"), 1, 2, 1, 1, GridBagConstraints.LINE_START);
addComp(pLogin, login, 2, 2, 1, 1, GridBagConstraints.LINE_START);
frame.setVisible(true);
}
private void addComp(JPanel panel, JComponent comp, int xPos, int yPos, int compWidth, int compHeight, int place) {
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = xPos;
gbc.gridy = yPos;
gbc.gridwidth = compWidth;
gbc.gridheight = compHeight;
gbc.anchor = place;
gbc.insets = new Insets(5,5,5,5);
panel.add(comp, gbc);
}
只需将两个文本字段的宽度更改为 2 而不是 1
addComp(pLogin, new JTextField(15), 1, 0, 2, 1, GridBagConstraints.LINE_START);
addComp(pLogin, new JTextField(15), 1, 1, 2, 1, GridBagConstraints.LINE_START);
图形界面问题。登录组件关闭到一边。
GUI 屏幕的分辨率。出于某种原因不得不使 jtextfield 的 comp 宽度为 2。
我有一件小事,我不知道是什么原因造成的...我的登录按钮在右侧。我知道这可能是由于 jtextfields 太大,然后将第三个单元格放在它旁边,但是有什么办法可以修复它吗?还是 JCheckBox
以某种方式与第 3 行组件冲突,因为它太小了?我需要登录按钮以某种方式向右移动更多,但我认为这是不可能的,因为第二个 x 单元格有 2 个 JTextField
组件占据了所有 space.
addComp(pLogin, new JLabel("Name: "), 0, 0, 1, 1, GridBagConstraints.LINE_END);
addComp(pLogin, new JLabel("Password: "), 0, 1, 1, 1, GridBagConstraints.LINE_END);
//these are going to be formatted fields. Remember johnny remove the new jtextfield soon
addComp(pLogin, new JTextField(15), 1, 0, 1, 1, GridBagConstraints.LINE_START);
addComp(pLogin, new JTextField(15), 1, 1, 1, 1, GridBagConstraints.LINE_START);
addComp(pLogin, remember_User, 0, 2, 1, 1, GridBagConstraints.LINE_END);
addComp(pLogin, new JLabel("Remember me"), 1, 2, 1, 1, GridBagConstraints.LINE_START);
addComp(pLogin, login, 2, 2, 1, 1, GridBagConstraints.LINE_START);
frame.setVisible(true);
}
private void addComp(JPanel panel, JComponent comp, int xPos, int yPos, int compWidth, int compHeight, int place) {
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = xPos;
gbc.gridy = yPos;
gbc.gridwidth = compWidth;
gbc.gridheight = compHeight;
gbc.anchor = place;
gbc.insets = new Insets(5,5,5,5);
panel.add(comp, gbc);
}
只需将两个文本字段的宽度更改为 2 而不是 1
addComp(pLogin, new JTextField(15), 1, 0, 2, 1, GridBagConstraints.LINE_START);
addComp(pLogin, new JTextField(15), 1, 1, 2, 1, GridBagConstraints.LINE_START);