2015-10-06 62 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