我正在使用 JFrame,其中 BorderLayout 的中心部分被包裹在 JPanel 周围的 JScrollPane 占据。我发现,当我启动实际导致 JPanel 显示的操作时,显示不会改变。但是当我调整 JFrame 的大小时,新的 JScrollPane 现在神奇地出现了。
那么调整 JFrame 大小时会调用哪些方法呢?如果我知道,那么我可以在代码中调用它,而不必为了查看操作结果而调整框架大小。
自从我完成 swing 以来已经有一段时间了,但根据记忆,在面板上调用 validate() 应该可以解决问题。这将导致它及其子项计算其布局,这是滚动条决策时做出的。如果这不起作用,请尝试在框架的内容窗格上调用验证。这成本稍高一些,但如果考虑其他组件,则可能需要。