Unterschied zwischen JComponent.isShowing () und isDisplayable ()

8

Was ist der Unterschied zwischen Component.isShowing() und Component.isDisplayable() ? Ich möchte sie verwenden, um zu entscheiden, ob ich einen Timer stoppen / starten soll.

    
keuleJ 15.08.2012, 11:51
quelle

3 Antworten

10

Eine Komponente
isShowing() wenn

  

Bestimmt, ob diese Komponente auf dem Bildschirm angezeigt wird. Das heisst   dass die Komponente sichtbar sein muss und in einem Container sein muss   ist sichtbar und zeigt.

isShowing() ist rekursiv und überprüft auch alle übergeordneten Komponenten, aber isDisplayable() und isVisible() verifizieren nur den Status der Komponente, nicht den Zustand ihrer Eltern.

Dies bedeutet, dass Ihre Komponente gerade auf dem Bildschirm in einem Frame, Panel usw. angezeigt wird.
setVisible(true) - & gt; isShowing() gibt wahr zurück (in den meisten Fällen)
setVisible(false) - & gt; isShowing() gibt (in allen Fällen) false zurück

isDisplayable() wenn

  

Bestimmt, ob diese Komponente angezeigt werden kann. Eine Komponente ist   anzeigbar, wenn es mit einer nativen Bildschirmressource verbunden ist.

     

Eine Komponente wird angezeigt, wenn sie zu einer Anzeige hinzugefügt wird   Containment-Hierarchie oder wenn die Containment-Hierarchie erstellt wurde   anzeigbar. Eine Containment-Hierarchie wird angezeigt, wenn ihre   Vorfahrfenster ist entweder gepackt oder sichtbar gemacht.

     

Eine Komponente wird entweder nicht mehr angezeigt, wenn sie aus einem entfernt wird   anzeigbare Containment-Hierarchie oder wenn ihre Containment-Hierarchie ist   nicht darstellbar gemacht. Eine Containment-Hierarchie wird nicht mehr angezeigt   sein Vorfahrenfenster ist angeordnet.

Dies bedeutet, dass sich Ihre Komponente in einem Zustand befindet, in dem sie auf dem Bildschirm angezeigt werden kann, aber nicht auf dem Bildschirm angezeigt werden muss, um sich in displayable -Zustand zu befinden. Wenn z. B. setVisible(false) für die Komponente zuvor aufgerufen wurde (also die Komponente "unsichtbar" ist), ist die Komponente immer noch displayable und isDisplayable() gibt true zurück.

    
Pr0gr4mm3r 15.08.2012, 12:12
quelle
3

isDisplayable () gibt true zurück, wenn der Peer der Komponente nicht null ist (der Peer ist der native Fenstercontainer).

isShowing () gibt true zurück, wenn die Komponente sichtbar ist (dh setVisible (true) oder show (true) wurde aufgerufen), ihr Peer ist nicht null, und wenn sie auch ein Elternelement hat, wird auch das Elternelement angezeigt (d isShowing () auf dem Eltern gibt true zurück).

    
Sticks 15.08.2012 12:11
quelle
-1

So weit ich weiß, gibt Component.isShowing () true zurück, wenn die Komponente sichtbar ist, und Component.isDisplayable () gibt true zurück, wenn sich die Komponente in einer anzeigbaren Hierarchie befindet, und das bedeutet, dass sie angezeigt werden kann. Ich denke, Methodennamen sprechen für sich selbst.

    
Sandeep Kumar 15.08.2012 12:10
quelle

Tags und Links