如何向 JPanel 添加空间,以便 JScrollPane 不会位于我的组件之上?



我有一个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)。

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

相关内容

  • 没有找到相关文章

最新更新