Fenstergrösse automatisch Speichern und Laden

Guten Tag,
zurzeit arbeite ich an einen Projektarbeit über Notizverwaltung.
Hab schon über Google ect recherchiert, dann kam ich auf euch zu, doch leider nicht den Thema gefunden .
Meine Frage ist, wie kann ich die Fenstergrösse speichern sobald es kleiner/grösser und verschoben wird?

	
import java.io.RandomAccessFile;
import java.nio.channels.FileChannel;
import java.util.prefs.Preferences;

import javafx.application.Application;
import javafx.application.Platform;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.layout.AnchorPane;
import javafx.fxml.FXMLLoader;


public class Main extends Application {
	
	
	private Stage primaryStage;
	
	@Override
	public void start(Stage primaryStage) {
		try {
			AnchorPane root = (AnchorPane)FXMLLoader.load(getClass().getResource("Note.fxml"));
			Scene scene = new Scene(root);
			scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
			
		    Preferences userPrefs = Preferences.userNodeForPackage(getClass());
		    // get window location from user preferences: use x=100, y=100, width=400, height=400 as default
		    double x = userPrefs.getDouble("stage.x", 100);
		    double y = userPrefs.getDouble("stage.y", 100);
		    double w = userPrefs.getDouble("stage.width", 1000);
		    double h = userPrefs.getDouble("stage.height", 750);
			
			primaryStage.setScene(scene);
			 primaryStage.setX(x);
			    primaryStage.setY(y);
			    primaryStage.setWidth(w);
			    primaryStage.setHeight(h);
			primaryStage.show();
		
			
		} catch(Exception e) {
			e.printStackTrace();
		}
	}
	
	
	
	
	@Override
	  public void stop() {
	    Preferences userPrefs = Preferences.userNodeForPackage(getClass());
	    userPrefs.putDouble("stage.x", primaryStage.getX());
	    userPrefs.putDouble("stage.y", primaryStage.getY());
	    userPrefs.putDouble("stage.width", primaryStage.getWidth());
	    userPrefs.putDouble("stage.height", primaryStage.getHeight());
	  }
	
	
	public static void main(String[] args) {
		
		try{
		    RandomAccessFile randomFile = new RandomAccessFile("single.class","rw");

		    FileChannel channel = randomFile.getChannel();

		    if(channel.tryLock() != null)
		    	launch(args);
		    else
		    	Platform.exit();
		}catch( Exception e ) { 
		    System.out.println(e.toString());
		}
		
		
	}
}

Ich habe bisher noch nichts mit FX gemacht. In AWT und Swing würde man WindowListener implementieren.

Schau mal hier:


Innerhalb der Listener musst Du den jeweils neuen Wert in eine Properties-Datei schreiben, die Du beim Programmstart liest um dann die selben Properties der scene zu füttern.

bye
TT