2014-02-17 59 views
-2

我剛開始自學Java的的JFrame和JSwing的基礎知識。這是所有的樂趣和遊戲。的GridBagLayout和展示位置

我聽說GridBagLayout是要掌握的佈局,如果你想用Java來製作圖形用戶界面,而且我這樣做,所以我搭售。

最近,今天,我嘗試爲自己製作一個GUI,並取得了一些好成績。但是我遇到了一個問題。

我的代碼如下:

String inputText; 

public welcomeFrame(String title) { 
    super(title); 

    Container c = getContentPane(); 
    GridBagConstraints gc = new GridBagConstraints(); 

    launchGUI.setMyDefaults(this, 800, 300); 

    setLayout(new GridBagLayout()); 

    gc.weighty = 1; 

    gc.anchor = GridBagConstraints.NORTH; 

    gc.gridx = 0; 
    gc.gridy = 0; 

    c.add(intro1, gc); 

    gc.gridx = 0; 
    gc.gridy = 1; 

    c.add(intro2, gc); 

    gc.gridx = 0; 
    gc.gridy = 2; 

    c.add(intro3, gc); 

    gc.gridx = 0; 
    gc.gridy = 3; 

    c.add(intro4, gc); 

    gc.gridx = 0; 
    gc.gridy = 4;  

    c.add(intro5, gc); 

    gc.anchor = GridBagConstraints.SOUTH; 

    gc.gridx = 0; 
    gc.gridy = 5;  

    c.add(tweets, gc); 

    gc.gridx = 1; 
    gc.gridy = 5; 

    c.add(textFrame, gc); 

    textFrame.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent e) { 

      inputText = textFrame.getText(); 
      dispose(); 

     } 
    }); 

} 

什麼這給了我是這樣的懷疑: enter image description here

打賭你能發現我的問題?

爲什麼heck是我的文本框在那邊?

如何讓它堅持我的「輸入文字:」標籤?你知道,正如它的權利?

謝謝大家,請溫柔,我只是盯着學習這東西。

+2

發表[最小完整的示例](http://stackoverflow.com/help/mcve)更快得到更好的幫助 – Reimeus

+0

@Reimeus我們走了,我的方法完整。 – ViRALiC

+0

雖然 – Reimeus

回答

1

如果我正確理解你的問題,最簡單的解決方案是將JLabel和JTextField添加到新的JPanel中,並將其添加到整體佈局。

例如:

gc.gridx = 0; 
gc.gridy = 5; 

JPanel panel = new JPanel(); 
panel.add(tweets); 
panel.add(textFrame); 

c.add(panel, gc); 

您也可以嘗試調整前幾排的gridwidth:

gc.gridwidth = 2;//before adding the intros 
... 
gc.gridwidth = 1;//right after the last intro