Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [JavaFX] Recuperare informazioni sullo Stage nel controller

    ciao!

    ho la necessità di recuperare alcune informazioni sullo stage nel controller.
    ad esempio le dimensioni.
    nel controller ho fatto questo:
    codice:
    @FXML
    public void initialize() {
        System.out.println(stage.getHeight());
    }
    
    private Stage getStage() {
        stage = (Stage) mainPane.getScene().getWindow();
        return stage;
    }
    ovviamente va in crash, e da quanto ho capito è perchè nell'initialize non "c'è" ancora lo stage.
    quindi come posso fare?

    anche ad esempio per impostare gli eventi di resize.

  2. #2
    diciamo che forse la risposta non sembra essere congrua alla domanda.
    ma alla fine volevo arrivare a questo.

    così facendo riesco ad intercettare l'evento di resizing dentro al controller, senza avere errori:
    codice:
    @FXML
    public void initialize() {
        mainPane.sceneProperty().addListener((observableScene, oldScene, newScene) -> {
            if (oldScene == null && newScene != null) {
                newScene.windowProperty().addListener((observableWindow, oldWindow, newWindow) -> {
                    if (oldWindow == null && newWindow != null) {
                        getStage().heightProperty().addListener((observable, oldValue, newValue) -> // TUO CODICE);
                    }
                });
            }
        });
    }
    
    private Stage getStage() {
        stage = (Stage) mainPane.getScene().getWindow();
        return stage;
    }
    in pratica, prima di impostare l'evento, controllo che sia stata effettivamente creata la scena.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.