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