2015-10-06 56 views
0

GUI屏幕的问题。将组件关闭到一侧。 enter image description hereGridBagLayout中的右侧1个组件

gui屏幕的分辨率。由于某种原因,必须制作jtextfield的宽度2。 enter image description here

我有一件小事情,我不知道是什么导致它...我的登录按钮是关闭的右侧。我知道这可能是由于jtextfields非常大,然后将第3个单元放置在它旁边,但是有什么方法可以解决它吗?或者它是否与第三排组件冲突,因为它太小?我需要登录按钮以某种方式向右移动更多,但我不认为这是可能的,因为第二个x单元有2个占据所有空间的组件。

 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); 
    } 
+3

1)的源代码中的白色空间中的单个空行的全部就是* *永远需要。 '{'之后或'}'之前的空行通常也是多余的。 2)为了更快地获得更好的帮助,请发布[MCVE]或[简短,独立,正确的示例](http://www.sscce.org/)。 3)以最小尺寸提供ASCII图形或简单的GUI图形布局图,如果可调整大小,则具有更大的宽度和高度。 –

+0

好的,谢谢你,我会这么做,当我回家对不起 – J4102

回答

2

只要改变这两个文本字段的宽度为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); 
+0

感谢这实际上工作,但工作是如何?我不知道如何改变宽度使登录按钮能够转到它的实际位置? – J4102

+0

在底行(复选框,标签,按钮)中有3列,但在第一行和第二行(标签和文本框)中有2列。所以我们让文本字段占据2列 – StanislavL