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.
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.
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).
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.
Tags und Links java swing jcomponent