2011-09-14 53 views
1

我正在研究一個沒有任何netbeans幫助的java gui應用程序硬編碼。我爲我的gui使用了盒子佈局。我的問題很簡單,從我看到的在線boxlayout應該堆疊在一起的元素。但是,當顯示這個時,我有一個textarea(x,y)切換按鈕和另一個textarea(x,y),在我的第一個文本區域和切換按鈕之間存在間隙,切換按鈕和第二個textarea 。爲什麼他們沒有被堆放! 謝謝,java gui boxlayout question

+3

你可能希望發佈一個非常小的編譯和執行的程序演示你的問題,一個[SSCCE(http://sscce.org)。請檢查鏈接,因爲它對你和我們都很有幫助。另外,你是否使用BoxLayout.PAGE_AXIS作爲你的BoxLayout構造函數調用的第二個參數?運氣! –

+0

我正在使用BoxLayout.Y_AXIS。 – user541597

+0

BoxLayout.Y_AXIS與BoxLayout.PAGE_AXIS相同,我相信,所以這不是問題。再次,我推薦一個SSCCE,例如下面所示。 –

回答

2

下面是一個試圖展示你的問題的SSCCE的例子。也許你可以修改它向我們展示了這是怎麼回事:

import java.awt.*; 
import javax.swing.*; 

public class BoxLayoutEg { 
    public static void main(String[] args) { 
     JTextArea area1 = new JTextArea(10, 20); 
     JToggleButton toggleBtn = new JToggleButton("Foo"); 
     JTextArea area2 = new JTextArea(10, 20); 

     JPanel toggleBtnPanel = new JPanel(); 
     toggleBtnPanel.setLayout(new FlowLayout(FlowLayout.CENTER, 0, 0)); 
     // toggleBtnPanel.setLayout(new GridLayout()); 
     toggleBtnPanel.add(toggleBtn); 

     JPanel mainJPanel = new JPanel(); 
     mainJPanel.setLayout(new BoxLayout(mainJPanel, BoxLayout.PAGE_AXIS)); 

     mainJPanel.add(new JScrollPane(area1)); 
     mainJPanel.add(toggleBtnPanel); 
     mainJPanel.add(new JScrollPane(area2)); 

     JOptionPane.showMessageDialog(null, mainJPanel); 

    } 
}