直接切换 Stage 会造成大量资源消耗,所以采用Scene切换来减少资源消耗。
启动类(继承Application)
public class Second extends Application { @Override public void start(Stage primaryStage)throws Exception{ primaryStage.setTitle("Sence change"); Group root = new Group(); Scene scene = new Scene(root, 400, 200, Color.WHITE); // second scene Group second = new Group(); Scene secondScene = new Scene(second, 200, 200,Color.BLACK); EventHandler<Event> eventHandler = new EventHandler<Event>() { @Override public void handle(Event event) { EventType<? extends Event> type = event.getEventType(); String name = type.getName(); // KeyEvent.KEY_PRESSED switch (name) { case "MOUSE_CLICKED": // 按键后触发播放动画效果,播放后完全不影响应用工作线程,说明完全可行 // 可以在事件中处理逻辑计算 break; case "KEY_PRESSED": // 任意键盘按键触发场景切换,切换到第二个场景 primaryStage.setScene(secondScene); break; } event.consume(); } }; scene.addEventHandler(Event.ANY, eventHandler);// 绑定事件 primaryStage.setScene(scene); primaryStage.show(); } }创建多个scene, 在同一个stage中进行切换。 可以减少资源消耗。 scene必须在主线程中创建和管理,否则会报错。