我想在运行时向JPanel
添加垂直堆叠的不同按钮并使用JScrollPane
,以便所有按钮都可见(通过滚动)。
为了做到这一点,我已将JPanel
添加到JScrollPane
,之后我将按钮添加到JPanel
。
然而,当我这样做时,垂直滚动条不允许我看到所有图像。例如,当我添加7个按钮时,我只能滚动查看5个完整图像和6个图像中的一半。
为什么我的滚动条不允许我显示所有7个按钮?
答案 0 :(得分:9)
创建面板和滚动窗格,如:
JPanel panel = new JPanel();
JScrollPane scrollPane = new JScrollPane( panel );
在运行时向面板添加按钮时,代码应为:
panel.add( button );
panel.revalidate();
只要您使用布局管理器,将重新计算首选大小,并显示滚动条。
答案 1 :(得分:3)
使滚动窗格成为面板上的包装 - new JScrollPane (myPanel)
并在面板的容器中添加它而不是裸面板。
您可能还想使用其setPreferredSize()
方法。