Resúmenes
Apuntes universitarios en formato Markdown desde Obsidian.
Change Scene
download Descargar MD
Per quanto riguarda il file Main.java:
package application;
public class Main {
public static void main(String[] args) {
ChangeWindowApplication.main(args);
}
}
Per quanto riguarda il file Window1Controller.java:
package application;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
public class Window1Controller {
@FXML
private Button button;
@FXML
void change(ActionEvent event) {
SceneHandler.setCurrent("window2");
}
}
Per quanto riguarda il file Window2Controller.java:
package application;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
public class Window2Controller {
@FXML
private Button button;
@FXML
void change(ActionEvent event) {
SceneHandler.setCurrent("window1");
}
}
Per quanto riguarda il file SceneHandler.java:
package application;
import java.util.HashMap;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
public class SceneHandler {
private static HashMap<String, Pane> allWindows = new HashMap<String,Pane>();
private static Scene main;
public static void init(Scene m) {
main = m;
}
public static void add(String name, Pane pane){
allWindows.put(name, pane);
}
public static void setCurrent(String name){
main.setRoot(allWindows.get(name));
}
}
Per quanto riguarda il file ChangeWindowApplication.java (una sorta di main):
package application;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Stage;
public class ChangeWindowApplication extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
FXMLLoader loader1 = new FXMLLoader(getClass().getResource("/application/Window1.fxml"));
FXMLLoader loader2 = new FXMLLoader(getClass().getResource("/application/Window2.fxml"));
AnchorPane root1 = (AnchorPane) loader1.load();
AnchorPane root2 = (AnchorPane) loader2.load();
Scene scene = new Scene(root1,400,400);
SceneHandler.init(scene);
SceneHandler.add("window1", root1);
SceneHandler.add("window2", root2);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}