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

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

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

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

在这里插入图片描述

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.rhkb.cn/news/403558.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

日撸Java三百行(day25:栈实现二叉树深度遍历之中序遍历)

目录 一、栈实现二叉树遍历的可行性 二、由递归推出栈如何实现中序遍历 1.左子树入栈 2.根结点出栈 3.右子树入栈 4.实例说明 三、代码实现 总结 一、栈实现二叉树遍历的可行性 在日撸Java三百行(day16:递归)中,我们讲过…

【C++11】入门基础

🔥 个人主页:大耳朵土土垚 🔥 所属专栏:C从入门至进阶 这里将会不定期更新有关C/C的内容,欢迎大家点赞,收藏,评论🥳🥳🎉🎉🎉 文章目录…

minikube 实践练习4 - 滚动更新

1. 应用版本更新 #查看image kubectl describe pods#设置应用的image为新版本 v1 -> v2 kubectl set image deployments/kubernetes-bootcamp kubernetes-bootcampdocker.io/jocatalin/kubernetes-bootcamp:v2#验证更新结果 export NODE_PORT"$(kubectl get services/…

糟糕界面集锦-控件篇11

GUI 的一个设计基本准则是:如果控件被禁用,那么就应该表现出来。这样不管是菜单项、命令按钮、列表框、下拉列表,我们只要一瞥就可以知道是否可用。奇怪的是为什么微软在按钮被禁用时不把它显示出来?这幅图片来自Office95 系列中的…

Redis操作--RedisTemplate(二)StringRedisTemplate

一、介绍 1、简介 由于存储在 Redis 中的 key 和 value 通常是很常见的 String 类型,Redis模块提供了 RedisConnection 和 RedisTemplate 的扩展,分是 StringRedisConnection 和 StringRedisTemplate,作为字符串操作的解决方案。 通过源码…

【区块链+金融服务】第一创业证券开发银行间报价 Dapp | FISCO BCOS应用案例

在银行间市场现券交易的过程中,通过银保监会发牌的代理机构进行报价交易,已解决无代理阶段存在的许多问题。 但是由于业务需要,使用以前模式进行报价交易的仍占有一定比例。 针对这一现状,第一创业证券基于 FISCO BCOS 区块链底层…

多种办公功能的WORD VBA程序

word的VBA办公助手 源代码 Option Explicit 需要引用 excel 16.0 库 所有内容仅供个人学习使用,严禁传播。1-公共变量-表格属性------------------------------------------------------------------------- Dim Hg% hg:行高 Const K1 0.1 Dim Flg_bh As Boolean …

专业技能——Redis常用命令和持久化策略,内存回收策略+主从模式,哨兵模式,集群模式+缓存穿透击穿雪崩

Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings),散列(hashes)…

Kali Linux-设置系统24小时时间制

文章目录 设置系统24小时时间制 设置系统24小时时间制 在Kali Linux中,如果系统时间不是以24小时制显示,你可以通过修改系统时间格式配置文件来调整为24小时制。以下是具体的操作步骤: 1.编辑/etc/locale.conf配置文件。 vim /etc/locale.c…

微信云开发云存储 下载全部文件

一、安装 首先按照这个按照好依赖,打开cmd 安装 | 云开发 CloudBase - 一站式后端云服务 npm i -g cloudbase/cli 安装可能遇到的问题 ‘tcb‘ 不是内部或外部命令,也不是可运行的程序或批处理文件。-CSDN博客 二、登录 在cmd输入 tcb login 三、…

VirtualBox安装Oracle Linux 7.9全流程

1.准备工作 1.1 VirtualBox下载 下载地址1: Downloads – Oracle VM VirtualBoxhttps://www.virtualbox.org/wiki/Downloads 下载地址2: https://www.oracle.com/virtualization/virtualbox/ 选择以上的任意一个地址都可下载到。 1.2 Oracle Linux 操作…

JavaScript初级——基础知识

一、JS的HelloWord 1、JS的代码需要编写到script标签中 2、JS的执行是根据语句从上到下一次执行的。 二、JS的编写位置 1、可以将js代码编写到标签的onclick属性中,当我们点击按钮时,js代码才会执行。 2、可以将js代码写在超链接的href属性中&#xff0…

HDFS的透明加密

一、HDFS透明加密原理 Hadoop的透明加密(HDFS Transparent Data Encryption) - TDE 1.HDFS中的数据明文存储 HDFS中的数据会以block的形式保存在各台数据节点的本地磁盘中,但这些block都是明文的。 通过Web UI页面找到Block的ID和副本位于的机器信息 如果在操作系统中直接访…

csrf漏洞(二)

本文仅作为学习参考使用,本文作者对任何使用本文进行渗透攻击破坏不负任何责任。 前言: 本文依靠phpstudy以及dvwa靶场进行操作,具体搭建流程参考:xss漏洞(二,xss靶场搭建以及简单利用) 前篇…

docker 部署 遇到的一些问题

1. nacos 部署问题 1.1 问题 springboot 服务器启动失败 AnnotationNacosPropertySourceBuilder - There is no content for NacosPropertySource from dataId[rsa.yaml] , groupId[DEFAULT_GROUP] , properties[{accessKey${nacos.access-key:}, clusterName${nacos.cluster…

leetcode387. 字符串中的第一个唯一字符,哈希表

leetcode387. 字符串中的第一个唯一字符 给定一个字符串 s ,找到 它的第一个不重复的字符,并返回它的索引 。如果不存在,则返回 -1 。 示例 1: 输入: s “leetcode” 输出: 0 示例 2: 输入: s “loveleetcode” 输出: 2 示例…

Xilinx FPGA:vivado关于以太网的零碎知识点

一、OSI七层模型 为了实现网络通信的标准化,普及网络应用,国际标准化组织(ISO)将整个以太网通信结构制定了OSI模型,即开放式系统互联。 OSI定义了网络互连的七层框架(物理层、数据链路层、网络层、传输层、…

【leetcode】回文链表-25-3

方法:快慢指针递归遍历 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* ListNode(int x, ListNode *next) …

宝塔面板部署webman项目+nginx反向代理

新建站点 新建一个站点,php版本选择纯净态即可,反正都是用不上的,域名填写你申请得到的域名 拉取代码 新建一个目录,然后将代码部署到本地 启动项目 推荐使用宝塔面板的进程守护管理器启动项目,其实就是用superviso…

快速体验fastllm安装部署并支持AMD ROCm推理加速

序言 fastllm是纯c实现,无第三方依赖的高性能大模型推理库。 本文以国产海光DCU为例,在AMD ROCm平台下编译部署fastllm以实现LLMs模型推理加速。 测试平台:曙光超算互联网平台SCNet GPU/DCU:异构加速卡AI 显存64GB PCIE&#…