我有一个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中的组件重叠的最佳方法是什么?
由于
答案 0 :(得分:2)
为了确保尊重JPanel的大小,您应该使用setPreferredSize()而不是setSize()。
答案 1 :(得分:1)
在您的示例代码中,您没有反转EAST和WEST吗?不应该是这样的:
eButton.add(editButton, BorderLayout.WEST);
eButton.add(spaceFiller, BorderLayout.EAST);
这会更有意义,sicne滚动条将出现在右侧(EAST)。
请注意,您建议的解决方案,即使它可能有效(在交换EAST和WEST之后)看起来更像是黑客而不是真正的解决方案。