JavaFX scene切换

直接切换 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必须在主线程中创建和管理,否则会报错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值