JavaFx基础学习【三】:Scene

目录

前言

一、介绍

二、代码体验

三、结果演示

四、总结

五、其他章节


前言

如果你还没有看过前面的文章,可以通过以下链接快速前往学习:

JavaFx基础学习【一】:基本认识_明天再去学习的博客-CSDN博客

JavaFx基础学习【二】:Stage_明天再去学习的博客-CSDN博客

一、介绍

Scene,就是场景,在整体结构中,就是蓝色那一块的

为了更好的体验出什么是Scene,以下提供了两个不同背景颜色的Scene,让大家知道是在Application中是处于哪一块,从图中我们可以很容易看出来,圈出来的内容,我们Scene就是指这一大块区域的内容,在以后开发中,我们的每个Scene可以有不同的大小、背景颜色、Node元素之类的,好比我们每个网页都有不同标签及样式:

二、代码体验

以下我们将创建两个Scene,第一个Sence有一个按钮可以进入到第二个人Scene,第二个Scene有一个按钮可以返回到第一个Scene,从而做到不同Scene之间的切换,让大家更容易理解什么是Scene

代码如下:

java 复制代码
public class App extends Application{

    @Override
    public void start(Stage primaryStage) throws Exception {
        // 第一个Scene,及进入第二个Scene的按钮
        Button button = new Button("进入第二个Scene");
        button.setPrefWidth(150);
        button.setPrefHeight(150);
        BorderPane borderPane = new BorderPane(button);
        Scene scene = new Scene(borderPane, 400, 400);

        // 第二个Scene,及返回第一个Scene的按钮
        Button button2 = new Button("返回第一个Scene");
        button2.setPrefWidth(150);
        button2.setPrefHeight(150);
        BorderPane borderPane2 = new BorderPane(button2);
        Scene scene2 = new Scene(borderPane2, 400, 400);

        button.setOnAction(event -> {
            primaryStage.setScene(scene2);
        });

        button2.setOnAction(event -> {
            primaryStage.setScene(scene);
        });

        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args )
    {
        launch(args);
    }
}

三、结果演示

以上需要知道的一点是,我们是替换掉了除了Stage窗口的所有内容部分,并不是只是换了一个元素Node按钮那么简单,我们替换的是一大块内容,而这大块内容中,又包括了一些各种各样的组件,比如按钮、标签之类的元素,如果还是不懂,可以前往总结看看我个人所理解的Scene。

四、总结

这里,我们把Application比作概念上的浏览器,那么,Stage便是我们看到的浏览器窗口本身,而Scene就是我们看到的一个个网页,那么Node就是网页组成中的一个个元素。

以上仅是个人理解,如果有错误,可以请大家评论区指出。

五、其他章节

JavaFx基础学习【四】:UI控件的通用属性_明天再去学习的博客-CSDN博客

JavaFx基础学习【五】:FXML布局文件使用_明天再去学习的博客-CSDN博客

相关推荐
Wang's Blog2 分钟前
Java框架 SpringCloud 快速入门: Gateway 路由的过滤器配置
java·spring cloud·gateway
JWASX5 分钟前
Java 转 go 学习 - 并发编程(1)
学习·golang
我命由我123457 分钟前
Photoshop - Photoshop 迁移预设,动作和设置
学习·职场和发展·产品运营·求职招聘·职场发展·产品经理·学习方法
迅猛龙办公室25 分钟前
python实现简单进度条
java·前端·python
斯内普吖31 分钟前
(开源)宠物饲养系统实战指南 基于 Java + SSM + Vue + MySQL
java·vue.js·mysql·开源·宠物
知守观35 分钟前
Spring Boot 2.1 → 3.5 迁移推演:这个 2018 年的项目会炸在哪
java·spring boot
传奇开心果编程36 分钟前
【现代声明式UI学与练】第9课 性能优化——渲染优化、列表优化、内存优化、启动优化
学习·flutter·react native·ui·性能优化·swiftui·android jetpack
传奇开心果编程36 分钟前
【Compose Multiplatform 跨端开发学与练】第8课 资源管理与主题
android·windows·学习·ios·kotlin·web·composer
Flynt37 分钟前
800KB 的 JSON 吃掉 8.5 秒 CPU:jackson 这波修复里,最容易被漏掉的洞藏在字符串里
java·安全
后端LV38 分钟前
Caffeine 快到 1450 万 ops/s,为什么我还是不敢说数据一致
java·后端