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

iOS/UIAutomation:如何将 isVisible() 用于第二个未标记工具栏中的按钮?

无法成功将 IsVisible 动态绑定到静态字段