Component.isShowing()
和Component.isDisplayable()
之间有什么区别?我想用它们来决定我应该停止/启动一个Timer。
答案 0 :(得分:11)
组件
<{1}}何时
确定此组件是否在屏幕上显示。这意味着 组件必须是可见的,并且它必须位于容器中 是可见的和显示。
isShowing()
是递归的,并检查所有父组件,但isShowing()
和isDisplayable()
仅验证组件的状态,而不验证其父组件的状态。
这意味着您的组件当前正在屏幕上显示在框架,面板等中
isVisible()
- &gt; setVisible(true)
返回true(在大多数情况下)
isShowing()
- &gt; setVisible(false)
返回false(在所有情况下)
isShowing()
确定此组件是否可显示。一个组件是 连接到本机屏幕资源时可显示。
组件在添加到可显示器时可显示 包含层次结构或在其包含层次结构时 显示。包含层次结构在其可用时可显示 祖先窗口打包或可见。
从a中移除组件时,组件将无法显示 可显示的包含层次结构或其包含层次结构 无法播放。包含层次结构在以下时无法显示 它的祖先窗口被处理掉了。
这意味着您的组件处于可以在屏幕上显示的状态,但它不需要当前显示在屏幕上以处于isDisplayable()
状态。例如,即使之前在组件上调用displayable
(因此组件“不可见”),组件仍为setVisible(false)
,displayable
将返回true。
答案 1 :(得分:3)
isDisplayable()如果组件的peer不为null(对象是本机窗口容器),则返回true。
如果组件可见(即setVisible(true)或show(true)被调用),则isShowing()返回true,其对等体为非null,如果它也有父对象,则父对象也显示(即父上的isShowing()返回true)。
答案 2 :(得分:-1)
据我所知,如果组件可见,Component.isShowing()将返回true,如果组件处于可显示的层次结构中,则Component.isDisplayable()返回true,这意味着它可以显示。我认为方法名称本身就是代表它们。