先描述一下问题:在由于宽度或高度的变化而重新布局期间,Java的ScrollPaneLayout在设置其视口(viewport)边界之前请求其子级的preferredSize。在Text-Components上调用getPreferredSpan可以更改布局,因为此getPreferredSpan在内部调用setSize。结果是,在这种情况下,没有View(扩展javax.swing.text.View)可以确定地检索其父组件的实际大小。getVisibleRect在这种情况下将失败,因为尚未设置视口(viewport)的边界。检查文本组件的有效性以阻止布局过程不是一个选项,因为它在这