1

我有一个带有边框布局的 JTabbedPane。

在此处输入图像描述

这是我用来添加组件的代码:

add(columnNames, BorderLayout.NORTH);
add(scroll, BorderLayout.CENTER);
add(useCtrl, BorderLayout.SOUTH);
setVisible(true);

问题:注意 JScrollPane 内右侧多余的空白。我不想在那里。我希望 JScrollPane 在更改 JFrame 的大小时根本不更改大小。我尝试过 setSize() 和 setPreferredSize(),但 JScrollPane 的大小总是会发生变化。我尝试过使用 GridLayout,但得到了相同的结果。

4

2 回答 2

4

将其JScrollPane放在JPanel另一个布局中。(例如BoxLayoutGridBagLayout)。并添加JPanel到中心。

于 2013-01-05T06:42:01.410 回答
3

图形对象的大小由布局管理器控制。将BorderLayout始终扩展CENTER对象以占用所有可用空间。 GridLayout按比例扩展它的所有孩子。如果您尝试使用 GridBagLayout 并将其设置weightx为 0,则会阻止水平扩展。

有很多可用的布局管理器,浏览 API 以获得更多选择并进行试验,直到找到所需的调整大小行为。每个对它在 javadoc 中的工作方式都有很好的解释。

于 2013-01-05T07:18:11.380 回答