isVisible() 是不是保证了 JAVA 中 UI 对象的可见性
Posted
技术标签:
【中文标题】isVisible() 是不是保证了 JAVA 中 UI 对象的可见性【英文标题】:Does isVisible() guarantees the visibility of the UI object in JAVAisVisible() 是否保证了 JAVA 中 UI 对象的可见性 【发布时间】:2013-05-24 14:36:19 【问题描述】:它的通用问题。如果我添加一些 UI 对象(例如 JButton 等)并检查 isVisible 属性,它将返回 true。但是,它是否保证对象在显示器上实际呈现并正确可见?如果没有,有没有更好的方法来检查?
【问题讨论】:
isVisible 只返回当前组件的标志值。它不能确保您的组件是可见组件层次结构的一部分。你应该看看isShowing()
【参考方案1】:
没有isVisible()
只是这个组件本身的一个提示。它是否对用户真正可见取决于组件的父层次结构。这可以通过 Component 继承的isShowing()
进行最好的验证,该组件检查组件及其所有父组件的isVisible()
和isDisplayable()
。但是正如 javadoc 提到的那样,即使这样也不能真正保证该组件对用户真正可见:
注意:有时无法检测组件是否对用户真正可见。这可能在以下情况下发生:
组件已添加到可见的 ScrollPane,但该组件当前不在滚动窗格的视口中。
组件被另一个组件或容器遮挡。
【讨论】:
以上是关于isVisible() 是不是保证了 JAVA 中 UI 对象的可见性的主要内容,如果未能解决你的问题,请参考以下文章
动态壁纸 isVisible/onVisibilityChanged 不适用于 Android 9+ 应用程序抽屉
isHiden和isVisible的区别(可是有nativeEvent进行设置)
Xamarin Forms:IsVisible 绑定无法正常工作
wpf 数据绑定 IsVisible 到 TabControl.SelectedItem != null