2013-03-06 13 views

Odpowiedz

6

AFAIK, nadal nie ma odpowiedniego sposobu na zrobienie tego.

Chociaż istnieje brudne i krótkotrwała sposób:

Przeglądając source code of javafx.stage.Window, jest statyczna metoda, która wydaje się robić to, czego oczekują: javafx.stage.Window#impl_getWindows().

Ale tam jest kilka stopek:

/** 
* 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; 
} 
+0

Ta metoda jest tylko listą jednego okna JavaFX dla bieżącego procesu. pls skomentować mój wynik? –

+0

'java.awt.Window.getWindows()' działa na drodze. Zwraca wszystkie okna w jre. – gontard

+0

@gontard nie, nie. Mam kilka okien javafx otwartych, ale metoda awt.Window nadal zwraca pustą tablicę. – Renato

8

dla javafx8 systemem java8 użytku

FXRobotHelper.getStages() 
or 
StageHelper.getStages() 

To będzie pobierać wszystkie etapy, które jest w zasadzie sama oknem (rozciąga klasa Okno)

+0

Wygląda na to, że nie można znaleźć okien dialogowych najwyższego poziomu utworzonych za pomocą controlsfx ... – Adam

+0

Chciałbym wiedzieć, gdzie leży różnica za pomocą tych dwóch metod. Dzięki – Davide

1

Zostało to naprawione poprawnie w Javie 9. Zobacz javafx.stage.Window.getWindows()

Powoduje zwrócenie listy zawierającej odniesienie do aktualnie wyświetlanych okien JavaFX . Lista nie może być modyfikowana - próba modyfikacji tej listy spowoduje zgłoszenie wyjątku UnsupportedOperationException w środowisku wykonawczym .

Jest to niezbędne, Java 9, inne rozwiązania polegające StageHelper lub FXRobotHelper nie jest już możliwe, ponieważ one istnieją w com.sun.javafx opakowania, które nie mogą być dostęp.

Powiązane problemy