sah ich eine Methode in AWT: java.awt.Window.getWindows()
. In JavaFx gibt es eine Methode, um alle Fenster JavaFx-Anwendung zu erhalten?Wie bekomme ich das oberste Fenster javafx?
Danke,
sah ich eine Methode in AWT: java.awt.Window.getWindows()
. In JavaFx gibt es eine Methode, um alle Fenster JavaFx-Anwendung zu erhalten?Wie bekomme ich das oberste Fenster javafx?
Danke,
AFAIK, gibt es immer noch keinen richtigen Weg, dies zu tun.
Obwohl es ein schmutzig und kurz Begriff Weg:
die source code of javafx.stage.Window
surfen, gibt es eine statische Methode, die, was Sie zu tun scheint erwarten: javafx.stage.Window#impl_getWindows()
.
Aber es gibt eine Reihe von Haftungsausschlüssen:
/**
* Return all Windows
*
* @return Iterator of all Windows
* @treatAsPrivate implementation detail
* @deprecated This is an internal API that is not intended for use and will be removed in the next version
*/
@Deprecated
@NoInit
public static Iterator<Window> impl_getWindows() {
final Iterator iterator = AccessController.doPrivileged(
new PrivilegedAction<Iterator>() {
@Override public Iterator run() {
return windowQueue.iterator();
}
}
);
return iterator;
}
für javafx8 läuft java8 Verwendung
FXRobotHelper.getStages()
or
StageHelper.getStages()
Dadurch werden alle Stufen abrufen, die im wesentlichen ein Fenster selbst (er erstreckt sich Window-Klasse)
Dies hat schließlich 9. javafx.stage.Window.getWindows()
Siehe richtig in Java behobenGibt eine Liste einen Verweis auf die derzeit zeigt JavaFX Fenster enthält. Die Liste ist nicht änderbar - versuchen, diese Liste zu ändern führt in einer UnsupportedOperationException bei Laufzeit geworfen.
Dies ist wichtig, in Java 9 als die anderen Lösungen StageHelper
oder FXRobotHelper
die nicht mehr möglich, da diese existieren in com.sun.javafx
-Paket, das nicht mehr zugegriffen werden kann.
Diese Methode ist nur Liste ein Fenster JavaFX auf aktuellen Prozess. Bitte kommentieren für mein Ergebnis? –
'java.awt.Window.getWindows()' Arbeiten im Weg. Es gibt alle Fenster im jre zurück. – gontard
@gontard nein, tut es nicht. Ich habe ein paar Javafx-Fenster geöffnet, aber die awt.Window-Methode gibt immer noch ein leeres Array zurück. – Renato