Java FX2 - przełączanie pod-scen

0

Witam,

problem jest następujący:

Używam Scene Buildera do kreowania designu aplikacji. Stworzyłem w nim jedną scenę główną, która ma być swego rodzaju kontenerem na wszelkie podsceny, oraz wspomniane już podsceny, zawierające wszelkie szczegółowe informacje.

Sceny mają być pomiędzy sobą przełączane po kliknięciu odpowiedniego przycisku znajdującego się w głównym kontenerze, bądź na poszczególnej stronie (warto byłoby znać oba warianty)

Teraz moje pytanie: Jak z poziomu kodu w javie zrealizować takie przełączanie w odpowiedzi na przechwycenie akcji kliknięcia buttona?

Pozdrawiam.

0

Używasz plików fxml go generowania interface'u ? Ja zrealizowałem to za pomocą właśnie takiego rozwiązania, wziąłem pliki fxml i je zmieniałem z poziomu kontrolera. Jeżeli chcesz dostać przykładowy kod to napisz.

0

Właśnie tak. jeżeli można, to poproszę.

1

Pobierz instancje z widoku:

private static FXMLExampleMVC instance;
public FXMLExampleMVC() {
           instance = this;
}
public static FXMLExampleMVC getInstance() {
        return instance;
}

a to wrzuć do kontrolera:

  @FXML protected void handleSubmitButtonRegister() throws IOException{
        FXMLExampleMVC.getInstance().metodaKtoraZmieniaPlikFXML();
    }
 

Moja metoda od zmiany fxml'a wygląda tak:

    protected void MetodaOdZmianyPlikufxml(String fxmlAdress) throws IOException{
        root = FXMLLoader.load(getClass().getResource(fxmlAdress));
        scene = new Scene(root);
        primaryStage.setScene(scene);
        
        primaryStage.setTitle("JavaFX Welcome!");
        scene.getStylesheets().add(FXMLExampleMVC.class.getResource("cssforapp.css").toExternalForm());

        primaryStage.show();        
    }

Dzięki temu start ma tylko 2 linijki :)

    public void start(Stage stage) throws Exception {
        primaryStage = stage;
        changeStage("Sample.fxml");
    } 
0

Chyba się źle wyraziłem...

Mam scenę główną, w której "zaincludowana" jest pod-scena.

Jak teraz z poziomu kontrolera wymieniać te zaincludowane sceny?

0
    <children>
    <fx:include source="scenes/new_scene_1.fxml" layoutX="14.0" layoutY="82.0" />
    </children>

1 użytkowników online, w tym zalogowanych: 0, gości: 1