问题描述
|
我想问一问,将JPanel放置在另一个使用GroupLayout作为布局管理器的JPanel中之后,是否可以获得正确的大小。我已经尝试使用:
.getPreferredSize():这将导致由我设置的“首选大小”,而不是在框架中的JPanel上绘制的实际大小(如果调整了框架的大小,则该元素将水平扩展;这是看不到的)在值中)。
.getSize():返回0。
.getHeight():返回0。
.getWidth():返回0。
也许代码的位置是相关的,但是它是在屏幕上显示之后执行的,所以不要紧。
要强制它在屏幕上显示后执行此操作,也许我可以使用EventQueue,但是我不确定如何操作。
谢谢您的回答!
解决方法
只有在渲染组件后,才可以通过调用顶级容器上的pack或setVisible(true)来获得组件的“正确”大小。
也许代码的位置是相关的,但是它是在屏幕上显示之后执行的,所以不要紧。
那是不对的。您确定要在可见组件上调用这些方法,而不是在某些变量上使用阴影吗?没有代码,很难分辨出错误所在。