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

news2024/9/22 21:31:38

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

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

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

在这里插入图片描述

JavaFX基础

  • JavaFX概述
    • Java GUI编程简史
    • 配置JavaFX开发环境
  • JavaFX程序基本结构
    • 舞台、场景和节点
    • Application类生命周期方法
    • JavaFX程序启动
      • 实战演练
  • JavaFX属性与绑定
    • JavaFX属性
    • 属性绑定
      • 实战演练
  • JavaFX界面布局
    • JavaFX坐标系

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轴。坐标单位是像素
    在这里插入图片描述
    博主用心写,读者点关注,互动传真其,知识不迷路。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2050940.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

34_Web漏洞扫描工具、常见Web漏洞扫描工具、AWVS的部署与使用、 渗透测试执行流程、AWVS破解

Web漏洞扫描工具 Web漏洞扫描是在Web信息收集的基础上,进行更进一步的自动化的安全评估、漏洞挖掘、渗透测试 Web漏洞扫描会出现漏报,需要手工结合使用 常见Web漏洞扫描工具 AWVS、OWASP ZAP、Arachni、Nitko、Paros... 渗透测试执行流程&#xff1a…

IDEA研究院编程语言MoonBit发布beta预览版,快速实现多领域应用

MoonBit beta 预览版比大部分主流语言更早推出现代化泛型、精准错误处理和高效迭代器等重要特性,在云计算、边缘计算、人工智能和教育等领域快速实现落地应用。Beta 预览版标志着 MoonBit 生态进入全新阶段,为用户提供更稳定、流畅的创新操作体验。 Moo…

C++入门——03内存管理

上图为C语言的内存管理,C中可以继续使用,但有些地方就无能为力而且使用起来比较麻烦,因此C又提出了自己的内存管理方式:通过new和delete操作符进行动态内存管理。 1.new和delete操作符 1.1.new/delete操作内置类型 注意&#xf…

自闭症青年的行为特征有哪些

自闭症,又称孤独症,是一种神经发育障碍,它不仅影响儿童的成长,也会在青年时期展现出一系列独特的行为特征。了解这些特征对于更好地支持和帮助自闭症青年融入社会至关重要。 社交互动方面的困难是自闭症青年较为显著的特征之一。他…

IO进程(学习)2024.8.17

目录 文件属性获取 目录操作 标准IO 和文件IO 的区别 库 库的定义 库的分类 静态库 动态库 库的制作 制作静态库 动态库的制作 使用库 进程 程序和进程的区别 程序:编译好的可执行文件 进程:一个独立的可调度的任务 特点 进程段 进程…

SMS流媒体服务器-MPEG-PS流的深度解析

1.简介 ps流的解析,只要按照标准文档对照16进制的流数据,基本都能看的明白。但是实际项目中会碰到各种各样的问题。本文将对如何高效的解析出音视频数据发表一下个人的看法。 介绍一下本人的开源流媒体,点个star,有兴趣一起开发的…

应急响应:勒索病毒-实战 案例一.【Windows 系统-排查和解密】

什么是勒索病毒. 勒索病毒是一种恶意软件,它通过加密用户的数据或锁定用户设备,然后要求用户支付赎金以解锁数据或系统。勒索病毒的入侵方式多样,包括网络共享文件、捆绑传播、垃圾邮件、水坑攻击、软件供应链传播、暴力破解、利用已知漏洞攻…

javaweb_08:Mybatis入门(基于Springboot)

javaweb_08:Mybatis入门 一、引入二、快速入门(一)准备工作1、创建Springboot工程2、创建user数据库3、创建实体类 (二)引入MyBatis相关依赖,配置MyBatis。(三)编写SQL语句&#xff…

动态路由OSPF基础学习笔记一

由于静态路由由网络管理员手工配置,因此当网络发生变化时,静态路由需要手动调整,这制约了静态路由在现网大规模的应用。 动态路由协议因其灵活性高、可靠性好、易于扩展等特点被广泛应用于现网。在动态路由协议之中,OSPF&#xf…

Linux I/O 多路复用机制详解

文章目录 1 文件描述符(File Descriptor)1.1 什么是文件描述符?1.2 文件描述符与文件的关系 2 文件描述符集合(File Descriptor Set)2.1 什么是文件描述符集合?2.2 fd_set 结构体 3 select() 函数的工作原理…

ros笔记06--从零体验ros2中launch系统

ros笔记06--从零体验ros2中launch系统 介绍创建步骤最基础的 launch 案例多节点 launch 案例 注意事项说明 介绍 ROS2系统通常由许多节点组成,这些节点运行在许多不同的进程(甚至不同的机器)上。虽然可以通过 ros2 run 单独运行这些节点,但当节点数量很…

【LLM入门】Let‘s reproduce GPT-2 (124M)【完结,重新回顾一下,伟大!】

文章目录 03:43:05 SECTION 4: results in the morning! GPT-2, GPT-3 repro03:56:21 shoutout to llm.c, equivalent but faster code in raw C/CUDA【太牛了ba】03:59:39 summary, phew, build-nanogpt github repo 03:43:05 SECTION 4: results in the morning! GPT-2, GPT-…

计算机毕业设计选题推荐-springboot 基于springboot的宠物健康顾问系统

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

Windows系统下Go安装与使用

step1: 下载go语言SDK 下载地址:https://go.dev/dl/ 下载后选择合适位置安装即可,我选择D盘 在安装完成后,可以通过go env 命令检测是否安装成功。在“命令提示符”界面输入“go env”命令,如果显示如下类似结果则说明…

C++STL初阶(12):stack和queue的初阶实现

1. stack的选型 对于栈的实现是我们非常熟悉的过程: C语言基础数据结构——栈和队列_栈和队列 插入取出数据-CSDN博客 _top表示下标,_capacity表示空间大小: 那么按照我们原来的思路,利用_top和_capacity T*来给stack构形。 temp…

Grok 2携AI图片生成重生

埃隆马斯克&#xff08;Elon Musk&#xff09;的人工智能初创公司xAI推出其最新的AI助手Grok 2的测试版&#xff0c;添加了类似于OpenAI的DALL-E和Google的Gemini的图像生成工具&#xff0c;但对可以生成的图像类型的限制显然较少。<这是其中的一个“亮点”&#xff0c;一些…

【Hot100】LeetCode—234. 回文链表

目录 1- 思路快慢指针链表拆分反转链表 2- 实现⭐234. 回文链表——题解思路 3- ACM 实现 原题连接&#xff1a;234. 回文链表 1- 思路 快慢指针链表拆分反转链表 思路 ①将链表拆分前后两个部分——>找拆分点、②反转后面部分、③根据反转结果&#xff0c;同时利用两个指…

揭秘住宅IP代理:原理、用途及应用分析

在数字化时代&#xff0c;互联网已成为我们日常生活和工作中不可或缺的一部分。然而&#xff0c;随着网络环境日益复杂&#xff0c;隐私保护、网络访问限制等问题愈发凸显。住宅IP代理作为一种新兴的网络技术解决方案&#xff0c;正逐渐成为众多跨境业务和网络活动的重要工具。…

打卡第46天------动态规划(回文串)

想要快点把每一道题给练会,在面试的时候跟面试官对答如流,这家公司实在是让我没有继续待下去的欲望了,天天祈祷上Di,求Shang帝帮助我实现两份工作的无缝衔接。交托仰望。 今天 我们就要结束动态规划章节了,动态规划的题目还是挺难的,贪心和动态规划对我来说都比较困难,对…

Jeecgboot3.6.3的vue3版本的一种flowable动态增加一个用户任务节点的方法(三)后端代码实现

因为这个项目license问题无法开源,更多技术支持与服务请加入我的知识星球。 这部分主要讲后端实现部分 1、增加一个AddTaskVo 类型,提供新增任务需要的数据结构 import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.D…