我正在一个java gui应用程序硬编码没有任何netbeans的帮助。我使用框布局为我的gui。我的问题很简单,从我在网上看到的boxlayout应该把元素堆叠在一起。然而,我有一个文本区域(x,y)一个切换按钮和另一个文本区域(x,y),当它显示时,我的第一个文本区域和切换按钮之间有一个间隙,切换按钮和第二个文本区域之间有一个间隙。为什么不把它们堆起来!谢谢你,
下面是一个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);
}
}