JFrame调整大小,ScrollBars不可见

时间:2011-12-21 06:02:49

标签: java swing

我设计了一个Swing表单。它由JScrollPane组成,其本身包含另一个JPanel。由于某些UI事件,Component会附加到此JPanel。它就像一个消息框,消息在到达时会附加到列表中。 问题是如何对此JPanel进行更改。为此,我简单地调用JFrame#pack()方法。但是调用它会将我的框架调整为容器的大小,忽略我最初设置的prefferedSize, and maximumSize边界。并且滚动条也不会变为可见,只是当组件被附加到面板时,框架的高度会变得更大。我希望我的Frame应该保持其初始大小,当组件的总大小超过帧的大小时,滚动条应该开始运行。我哪里错了?请帮忙。 这是我的初始屏幕: enter image description here

此屏幕是添加组件的时间: enter image description here

1 个答案:

答案 0 :(得分:3)

向面板添加组件时,常规代码为:

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

revalidate()方法将重新计算面板的首选大小。如果首选大小大于滚动窗格的大小,则会出现滚动条。

当然,您必须使用布局管理器才能自动执行此功能。