Java JFrame已调整大小,滚动条不可见
我设计了一个秋千。它由一个本身包含另一个Java JFrame已调整大小,滚动条不可见,java,swing,Java,Swing,我设计了一个秋千。它由一个本身包含另一个JPanel的JScrollPane组成。由于某些UI事件,组件被追加到此JPanel。它就像一个消息框,消息到达时会被追加到列表中。 问题是如何使此JPanel的更改可见。为了实现这一点,我简单地调用JFrame#pack()方法。但是调用此函数会将帧的大小调整为容器的大小,忽略我最初设置的preferedSize和maximumSize绑定。滚动条也不可见,只是随着组件附加到面板上,框架的高度会变大。我希望我的框架应该保持其初始大小,当组件的总大小超过
JPanel
的JScrollPane
组成。由于某些UI事件,组件
被追加到此JPanel
。它就像一个消息框,消息到达时会被追加到列表中。
问题是如何使此JPanel的更改可见。为了实现这一点,我简单地调用JFrame#pack()
方法。但是调用此函数会将帧的大小调整为容器的大小,忽略我最初设置的preferedSize和maximumSize
绑定。滚动条也不可见,只是随着组件附加到面板上,框架的高度会变大。我希望我的框架应该保持其初始大小,当组件的总大小超过框架的大小时,滚动条应该开始工作。我哪里做错了?请帮忙。
这是我的初始屏幕:
添加组件时显示此屏幕:
将组件添加到面板时,一般代码为:
panel.add(...);
panel.revalidate();
方法将重新计算面板的首选大小。如果首选大小大于滚动窗格的大小,则会显示滚动条
当然,您必须使用布局管理器才能自动实现此功能。您可以添加一个屏幕截图吗?代码在哪里,您已经解释了理论部分。请提供代码。@ProphesyWaitis我正在使用netbeans IDE。代码是由IDE生成的,我应该上传吗?你能解释一下为什么JFrame#pack()
忽略maximumSize
?@Sanjay取决于使用的LayoutManager,除了BoxLayout之外,大多数都忽略了XxxSize