Java语言程序设计——篇十四(1)

在这里插入图片描述
在这里插入图片描述

       🌿🌿🌿跟随博主脚步,从这里开始→博主主页🌿🌿🌿

  • 欢迎大家:这里是我的学习笔记、总结知识的地方,喜欢的话请三连,有问题可以私信🌳🌳🌳
    您的点赞👍、关注➕、收藏⭐️、评论📝、私信📧是我最大的支持与鼓舞!!!🌻🌻🌻

在这里插入图片描述

JavaFX概述

Java GUI编程简史

  • Java支持图形用户界面(Graphical User Interface, GUI) 开发。
    ① Java从1.0开始就提供一个AWT类库,称为抽象窗口工具
    箱(Abstract Window Toolkit,AWT)。
    ② Java从1.2出现了Swing,Oracle宣布不再继续开发Swing。
    ③ 从Java 8开始,JavaFX已经与JDK绑定到一起,但Java11
    之后,JavaFX与JDK分开发布

配置JavaFX开发环境

  • JavaFX框架API定义了30多个包,这些包以javafx开头,如
    javafx.application包、javafx.stage包、javafx.scene包、
    javafx.scene.layout包等。JavaFX应用程序的功能通过这些包中
    的接口和类实现。
  • 在JDK中这些库文件被打包在名为jfxrt.jar文件中,存放在JDK安
    装目录的\jre\lib\ext目录中。为编译和运行JavaFX程序,需要将
    该文件添加到类路径中。

JavaFX程序基本结构

舞台、场景和节点

  • 继承Application类
  • 每个JavaFX程序都必须继承javafx.application.Application类。
    Application类定义了应用程序生命周期方法
    初始化(init)
    开始(start)
    停止(stop)
    启动(launch)

    在这里插入图片描述
    在这里插入图片描述

Application类生命周期方法

  • Application类生命周期方法
    Application类定义了三个生命周期方法,包括init()start()stop()方法,在JavaFX程序中可以覆盖这些方法。
public void init( ) 初始化方法
public abstract void start(Stage stage) 启动方法
public void stop( ) 停止方法

JavaFX程序启动

  • 可以从main()方法中调用Application类的静态方法launch(),该
    方法启动一个独立的JavaFX程序。
  • launch()方法启动后调用init()方法和start()方法,当应用程序终
    止时,launch()方法才返回。

实战演练

【练习 】 实现HelloWorld.java JavaFX程序

import javafx.application.Application;  
import javafx.scene.Scene;  
import javafx.scene.control.Label;  
import javafx.scene.layout.StackPane;  
import javafx.stage.Stage;  
  
public class HelloWorld extends Application {  
  
    @Override  
    public void start(Stage primaryStage) {  
        // 创建一个标签,内容是"Hello, World!"  
        Label label = new Label("Hello, World!");  
  
        // 使用StackPane作为根节点,将标签添加到其中  
        StackPane root = new StackPane();  
        root.getChildren().add(label);  
  
        // 创建一个场景,将根节点和尺寸传递给场景  
        Scene scene = new Scene(root, 300, 250);  
  
        // 配置并显示舞台  
        primaryStage.setTitle("Hello World!"); // 设置舞台标题  
        primaryStage.setScene(scene); // 将场景添加到舞台  
        primaryStage.show(); // 显示舞台  
    }  
  
    public static void main(String[] args) {  
        launch(args); // 启动JavaFX应用程序  
    }  
}

JavaFX属性与绑定

JavaFX属性

  • 在JavaFX中,节点类通常包含一些属性,这些属性与普通Java类
    的属性不同。
  • 首先,属性的类型应为Property接口的子类型,如StringPropert
    为字符串类型属性,IntegerProperty为整型类型属性。
  • 其次,一个属性除settergetter方法外,还应有第三个方法,它
    返回一个实现Property接口的对象。
  • JavaFX属性的主要功能是属性绑定事件处理。
    通过属性的addListener()方法可以为其注册监听器。
    通过属性的bind()方法可以实现属性绑定。当被绑定的对象属性发生改变时,将自动反映到绑定的对象上。
    在这里插入图片描述

属性绑定

  • 属性绑定是JavaFX引入的一个新概念。可以将一个目标对象和一
    个源对象绑定。
  • 如果源对象的属性值改变了,目标对象的属性值随之自动改变。
    一个目标target使用bind()方法和源source进行绑定,如下所示。
    target.bind(source);
    在这里插入图片描述
  • 为实现窗体大小改变保证圆仍然显示在中央,可以将圆心坐标属性centerX和centerY属性分别绑定到面板的width/2以及height/2上。
    使用下面代码实现属性绑定。
circle.centerXProperty().bind(
rootNode.widthProperty().divide(2));
circle.centerYProperty().bind(
rootNode.heightProperty().divide(2));

实战演练

【练习 】 实现ShowCircle.java JavaFX程序

import javafx.application.Application;  
import javafx.scene.Scene;  
import javafx.scene.layout.StackPane;  
import javafx.scene.shape.Circle;  
import javafx.stage.Stage;  
  
public class ShowCircle extends Application {  
  
    @Override  
    public void start(Stage primaryStage) {  
        // 创建一个圆形,设置其半径和填充颜色  
        Circle circle = new Circle(100, 100, 50); // 圆心在(100, 100),半径为50  
        circle.setFill(javafx.scene.paint.Color.BLUE); // 设置填充颜色为蓝色  
  
        // 使用StackPane作为根节点,将圆形添加到其中  
        StackPane root = new StackPane();  
        root.getChildren().add(circle);  
  
        // 创建一个场景,将根节点和尺寸传递给场景  
        Scene scene = new Scene(root, 300, 250);  
  
        // 配置并显示舞台  
        primaryStage.setTitle("Show Circle"); // 设置舞台标题  
        primaryStage.setScene(scene); // 将场景添加到舞台  
        primaryStage.show(); // 显示舞台  
    }  
  
    public static void main(String[] args) {  
        launch(args); // 启动JavaFX应用程序  
    }  
}

JavaFX界面布局

JavaFX坐标系

  • 屏幕和面板等组件坐标与数学的笛卡尔坐标不同,它的原点在屏幕或面板的左上角,横向为x轴,纵向为y轴。坐标单位是像素
    在这里插入图片描述
    博主用心写,读者点关注,互动传真其,知识不迷路。
  • 19
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

倾听一世,繁花盛开

你的鼓励是我创作最大的动力与支

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值