【发布时间】:2009-08-18 09:19:09
【问题描述】:
首先描述问题: 在由于宽度或高度的变化而重新布局期间,Java 的 ScrollPaneLayout 在设置其视口的边界之前请求其子项的 preferredSize。在 Text-Components 上调用 getPreferredSpan 可以更改布局,因为此 getPreferredSpan 在内部调用 setSize。效果是,在这种情况下,没有任何视图(扩展 javax.swing.text.View)可以确定检索其父组件的实际大小。在这种情况下,getVisibleRect 将失败,因为尚未设置视口的边界。检查文本组件的有效性以阻止布局过程不是一种选择,因为它在这种情况下已经有效。
所以,问题是:是否有可能查明 JComponent 的边界是否是最新的?
【问题讨论】:
-
对不起,我也不知道。添加了“swing”标签...
-
这个问题很混乱。你能帮我们清理一下吗?
-
我不会担心这个。需要从子组件获取父组件的大小是应用程序设计不正确的一个很好的指标。我的意思是——你真的需要解决这个问题吗?背景是什么?