如何强制JScrollPane仅垂直滚动?

2022-09-04 01:00:29

伙计们,我需要在jscrollpanel中放置一些按钮,但是JScrollPane不会垂直创建滚动。我在JScrollPane中使用了一个JPanel,它使用简单的FlowLayout布局。我怎样才能使JScrollPanel只在垂直方向上滚动?

问题:

enter image description here

期望的解决方案:enter image description here


答案 1

查看换行布局


答案 2

使用JScrollPane的事实改变了很多关于内部FlowLayout的事情。实际上,当 FlowLayout 尝试布局包含 JButtons 时,它会使用可用空间。在你的情况下,你对JScrollPane的“可滚动客户端”中的空间没有限制。因此,考虑到 FlowLayout 具有无限空间,它会根据此空间显示项目。

因此,解决方案是更改可滚动客户端,以将其可视区域限制为与JScrollPane的JViewport相同。

但是,在这种情况下,您甚至不会有行返回,因为FlowLayout不能很好地处理这种情况。

如果我是你,我当然会选择其他布局。由于不能很好地处理边框,我认为您可以使用的唯一合理的标准布局是,尽管我担心您的动态内容约束可能需要您更可定制的东西。GridLayoutGridBagLayout


推荐