2011-09-14 57 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); 

    } 
}