Component.isShowing()
とはどう違いComponent.isDisplayable()
ますか?それらを使用して、タイマーを停止/開始する必要があるかどうかを決定したいと考えています。
3 に答える
コンポーネント
isShowing()
_
このコンポーネントが画面に表示されるかどうかを決定します。これは、コンポーネントが可視である必要があり、可視かつ表示可能なコンテナ内にある必要があることを意味します。
isShowing()
再帰的で、すべての親コンポーネントもチェックしますが、親の状態ではなく、コンポーネントの状態のみisDisplayable()
を確認します。isVisible()
これは、コンポーネントがフレーム、パネルなどの画面に現在表示されていることを意味します。
setVisible(true)
--> isShowing()
true を返します (ほとんどの場合)
setVisible(false)
--> isShowing()
false を返します (すべての場合)
isDisplayable()
いつ
このコンポーネントが表示可能かどうかを決定します。コンポーネントは、ネイティブの画面リソースに接続されている場合に表示可能です。
コンポーネントは、表示可能な包含階層に追加されるか、その包含階層が表示可能になると、表示可能になります。コンテインメント階層は、その祖先ウィンドウがパックまたは可視化されると、表示可能になります。
コンポーネントは、表示可能な包含階層から削除されるか、その包含階層が表示不能になると、表示不能になります。包含階層は、祖先ウィンドウが破棄されると表示できなくなります。
これは、コンポーネントが画面に表示できる状態にあることを意味しますが、状態になるために現在画面に表示されている必要はありませんdisplayable
。たとえば、setVisible(false)
以前にコンポーネントで呼び出された場合でも (そのため、コンポーネントは「非表示」)、コンポーネントはそのままdisplayable
でisDisplayable()
true を返します。
isDisplayable()は、コンポーネントのピアがnullでない場合(ピアがネイティブウィンドウコンテナである場合)にtrueを返します。
isShowing()は、コンポーネントが表示されている場合(つまり、setVisible(true)またはshow(true)が呼び出された場合)、そのピアがnull以外であり、親もある場合、親も表示されている場合(つまり、isShowing())、trueを返します。親でtrueを返します)。
私が理解している限り、コンポーネントが表示されている場合は Component.isShowing() は true を返し、コンポーネントが表示可能な階層にある場合は Component.isDisplayable() は true を返し、それは表示できることを意味します。メソッド名自体がそれを物語っていると思います。