如何在Java中将ScrollPane添加到面板?

时间:2010-02-17 16:51:22

标签: java swing

我想在运行时向JPanel添加垂直堆叠的不同按钮并使用JScrollPane,以便所有按钮都可见(通过滚动)。

为了做到这一点,我已将JPanel添加到JScrollPane,之后我将按钮添加到JPanel

然而,当我这样做时,垂直滚动条不允许我看到所有图像。例如,当我添加7个按钮时,我只能滚动查看5个完整图像和6个图像中的一半。

为什么我的滚动条不允许我显示所有7个按钮?

2 个答案:

答案 0 :(得分:9)

创建面板和滚动窗格,如:

JPanel panel = new JPanel();
JScrollPane scrollPane = new JScrollPane( panel );

在运行时向面板添加按钮时,代码应为:

panel.add( button );
panel.revalidate();

只要您使用布局管理器,将重新计算首选大小,并显示滚动条。

答案 1 :(得分:3)

使滚动窗格成为面板上的包装 - new JScrollPane (myPanel)并在面板的容器中添加它而不是裸面板。

您可能还想使用其setPreferredSize()方法。