所以我在小程序的init()中有这样的代码:

layout = new BorderLayout();
setLayout(layout);

northPanel = new JPanel(new FlowLayout());

northPanel.add(inputDropDown);
northPanel.add(lowBoundLabel);
northPanel.add(lowBoundField);
northPanel.add(highBoundLabel);
northPanel.add(highBoundField);
northPanel.add(new JLabel("using"));
northPanel.add(categoriesField);
northPanel.add(new JLabel("categories"));
northPanel.add(showTotalsBox);
northPanel.add(refreshButton);

add(northPanel, BorderLayout.NORTH);


现在,当我对其进行测试时,所有元素都在一条直线上,并且在没有足够空间时不会缠绕。我什至确保将面板指定为FlowLayout(即使它是默认面板),并且它没有任何改变。

他们不应该包装而不是刚离开屏幕吗?这是怎么回事?我提出了一个临时解决方案,将northPanel更改为BorderLayout,将这些元素拆分为单独的面板,然后将它们添加到NorthSouth。但是,在这种方法中,元素只是在屏幕上消失而没有必要的空间,因此我希望将它们环绕起来。

最佳答案

这实际上就是FlowLayout的工作方式,不是很烦吗?

看看WrapLayout代替...

10-06 11:06