0

我有一个 JScrollPane,当我加载我的应用程序时,该栏位于我的一个按钮的顶部。我想做的是在我的按钮侧面添加一些空间,以便滚动条在空间上而不是我的按钮上绘制。

我试过的示例代码:

JPanel eButton = new JPanel(new BorderLayout());
JPanel spaceFiller = new JPanel();
spaceFiller.setSize(30, 10);
eButton.add(editButton, BorderLayout.EAST);
eButton.add(spaceFiller, BorderLayout.WEST);

这段代码的问题是它仍然覆盖了我的按钮并且没有添加空格。确保 JScrollPane 不与我的 JFrame 中的组件重叠的最佳方法是什么?

谢谢

4

2 回答 2

2

为了确保 JPanel 的大小得到尊重,您应该使用 setPreferredSize() 而不是 setSize()。

于 2011-05-19T13:14:42.750 回答
1

在您的示例代码中,您没有颠倒 EAST 和 WEST 吗?不应该是这样的:

eButton.add(editButton, BorderLayout.WEST); 
eButton.add(spaceFiller, BorderLayout.EAST); 

这会更有意义,因为滚动条将出现在右侧(EAST)。

请注意,您建议的解决方案,即使它可能有效(在交换 EAST 和 WEST 之后)看起来更像是一个 hack,而不是真正的解决方案。

于 2011-05-19T15:08:39.747 回答