使用GroupLayout后,获得正确的JComponent大小

问题描述

| 我想问一问,将JPanel放置在另一个使用GroupLayout作为布局管理器的JPanel中之后,是否可以获得正确的大小。我已经尝试使用: .getPreferredSize():这将导致由我设置的“首选大小”,而不是在框架中的JPanel上绘制的实际大小(如果调整了框架的大小,则该元素将水平扩展;这是看不到的)在值中)。 .getSize():返回0。 .getHeight():返回0。 .getWidth():返回0。 也许代码的位置是相关的,但是它是在屏幕上显示后执行的,所以不要紧。 要强制它在屏幕上显示后执行此操作,也许我可以使用EventQueue,但是我不确定如何操作。 谢谢您的回答!     

解决方法

只有在渲染组件后,才可以通过调用顶级容器上的pack或setVisible(true)来获得组件的“正确”大小。   也许代码的位置是相关的,但是它是在屏幕上显示之后执行的,所以不要紧。 那是不对的。您确定要在可见组件上调用这些方法,而不是在某些变量上使用阴影吗?没有代码,很难分辨出错误所在。