Hallo Freunde der Nacht,
Ich habe mir einen eigenen EventHandler geschrieben, der macht nichts schlaues, sondern dient nur Testzwecken um mein Verständniss zu verbessern. Leider kenne ich die tags zum javaCode formatieren nicht, vielleicht kann mir die mal Jemand verraten. Ich zeige den Code jetzt trotzdem, so sieht er aus:
import javafx.event.EventHandler;
import javafx.stage.WindowEvent;
public class JavaFXMyWindowListener implements EventHandler<WindowEvent>{
@Override
public void handle(WindowEvent event) {
System.out.println("WindowEvent: " + event.getEventType());
if(event.getEventType() == WindowEvent.WINDOW_CLOSE_REQUEST){
System.out.println("Das Fenster wird geschlossen");
event.consume();
}
if(event.getEventType() == WindowEvent.WINDOW_SHOWING){
System.out.println("Window aktiv");
}
if(event.getEventType() == WindowEvent.WINDOW_SHOWN){
System.out.println("Das Fenster wurde geoeffnet");
}
if(event.getEventType() == WindowEvent.WINDOW_HIDDEN){
System.out.println("Das Fenster wurde minimiert");
}
if(event.getEventType() == WindowEvent.WINDOW_HIDING){
System.out.println("Das Fenster wird minimiert");
}
}
}
Das Problem bezieht sich auf die letzten beiden If Anweisungen. WINDOW_HIDDEN & WINDOW_HIDING scheinen nicht zu funktionieren. Wenn ich diese Aktionen durchführe, kommt das entsprechende System out nicht, bei den anderen drei Event Typen scheint das aber zu funktionieren.
Ich habe ein Workaround gefunden, das funktioniert wen man es in der Hauptklasse an die Stage anfügt, das sieht so aus:
stage.iconifiedProperty().addListener(new ChangeListener<Boolean>() {
@Override public void changed(ObservableValue<? extends Boolean> prop, Boolean oldValue, Boolean newValue) {
System.out.println("Iconified? " + newValue);
}
});
Aber muss ich das wirklich so machen? wozu gibt es denn WINDOW_HIDDEN & WINDOW_HIDING wenn sie nicht funktionieren? Danke für eure Hilfe, und wenn mir jemand die Code Tags verrät bringe ich das sofort in ordnung.
Ich habe mir einen eigenen EventHandler geschrieben, der macht nichts schlaues, sondern dient nur Testzwecken um mein Verständniss zu verbessern. Leider kenne ich die tags zum javaCode formatieren nicht, vielleicht kann mir die mal Jemand verraten. Ich zeige den Code jetzt trotzdem, so sieht er aus:
import javafx.event.EventHandler;
import javafx.stage.WindowEvent;
public class JavaFXMyWindowListener implements EventHandler<WindowEvent>{
@Override
public void handle(WindowEvent event) {
System.out.println("WindowEvent: " + event.getEventType());
if(event.getEventType() == WindowEvent.WINDOW_CLOSE_REQUEST){
System.out.println("Das Fenster wird geschlossen");
event.consume();
}
if(event.getEventType() == WindowEvent.WINDOW_SHOWING){
System.out.println("Window aktiv");
}
if(event.getEventType() == WindowEvent.WINDOW_SHOWN){
System.out.println("Das Fenster wurde geoeffnet");
}
if(event.getEventType() == WindowEvent.WINDOW_HIDDEN){
System.out.println("Das Fenster wurde minimiert");
}
if(event.getEventType() == WindowEvent.WINDOW_HIDING){
System.out.println("Das Fenster wird minimiert");
}
}
}
Das Problem bezieht sich auf die letzten beiden If Anweisungen. WINDOW_HIDDEN & WINDOW_HIDING scheinen nicht zu funktionieren. Wenn ich diese Aktionen durchführe, kommt das entsprechende System out nicht, bei den anderen drei Event Typen scheint das aber zu funktionieren.
Ich habe ein Workaround gefunden, das funktioniert wen man es in der Hauptklasse an die Stage anfügt, das sieht so aus:
stage.iconifiedProperty().addListener(new ChangeListener<Boolean>() {
@Override public void changed(ObservableValue<? extends Boolean> prop, Boolean oldValue, Boolean newValue) {
System.out.println("Iconified? " + newValue);
}
});
Aber muss ich das wirklich so machen? wozu gibt es denn WINDOW_HIDDEN & WINDOW_HIDING wenn sie nicht funktionieren? Danke für eure Hilfe, und wenn mir jemand die Code Tags verrät bringe ich das sofort in ordnung.