我有一个带边框布局的JTabbedPane。
这是我用来添加组件的代码:
add(columnNames, BorderLayout.NORTH);
add(scroll, BorderLayout.CENTER);
add(useCtrl, BorderLayout.SOUTH);
setVisible(true);
问题: 注意JScrollPane内右边的多余空格。我不希望那里。我希望JScrollPane在改变JFrame的大小时根本不改变大小。我尝试过setSize()和setPreferredSize(),但JScrollPane的大小总是在变化。我尝试过使用GridLayout,但结果相同。
答案 0 :(得分:4)
将JScrollPane
放在另一个布局的JPanel
中。 (例如BoxLayout
或GridBagLayout
)。并将JPanel
添加到中心。
答案 1 :(得分:3)
图形对象的大小由布局管理器控制。 BorderLayout
将始终展开CENTER
对象以占用所有可用空间。 GridLayout
按比例扩展所有孩子。如果您尝试使用GridBagLayout并将weightx
设置为0,则会阻止水平扩展。
有许多可用的布局管理器,浏览API以获得更多选择并进行实验,直到找到所需的调整大小行为。每个都有一个很好的解释它在javadoc中是如何工作的。