当前位置: 首页 > news >正文

【Java学习之道】JavaFx 框架与组件介绍

引言

如果你曾经尝试过使用Java编写一个漂亮的窗口应用程序,那么你一定知道JavaFX这个强大的工具。JavaFXJava 8中引入的一个GUI开发框架,它提供了丰富的组件和功能,使得我们可以轻松地创建出功能强大、界面美观的桌面应用程序。无论你是想开发一个简单的计算器程序,还是想构建一个复杂的游戏界面,JavaFX都能满足你的需求。

一、JavaFX的主要特点

  1. 丰富的图形和媒体支持JavaFX支持各种图形和媒体效果,包括3D图形、渐变和阴影等。此外,JavaFX还支持各种格式的音频和视频,可以轻松创建出富有表现力的多媒体应用。
  2. 新的UI控件JavaFX提供了新的UI控件,包括进度条、滑块、表格等。这些控件不仅功能强大,而且易于使用和自定义。
  3. 动画效果JavaFX提供了强大的动画效果支持,可以轻松实现各种动画效果,比如旋转、缩放、平移等。
  4. 支持各种操作系统JavaFX可以在各种操作系统上运行,包括Windows、Linux和MacOS等。

注:虽然JavaFX是Java最新的GUI框架,但Swing仍然具有一定的价值。在一些旧的Java应用中,Swing被广泛使用,因此了解如何使用Swing也是非常必要的。在开发新的Java GUI应用时,建议优先使用JavaFX,因为它提供了更先进的图形和媒体支持。

二、JavaFx 框架与组件介绍

在本节中,我们将深入探讨JavaFX框架的核心组件和布局。通过本节的学习,你将了解如何使用JavaFX创建各种GUI元素和布局。

2.1 JavaFX的核心组件

JavaFX的核心组件包括以下几种:

在这里插入图片描述

  1. NodeNodeJavaFX中的基本组件,所有JavaFX组件都继承自Node类。Node类定义了一些基本的图形属性,比如颜色、透明度和填充等。
  2. ShapeShapeNode的一个子类,用于绘制简单的图形,比如线条、矩形和圆形等。可以通过设置Shape的属性,比如颜色、线宽和线型等来定制化图形。
  3. TextTextNode的另一个子类,用于绘制文本。可以通过设置Text的属性,比如字体、颜色和大小等来定制化文本。
  4. ImageViewImageView用于显示图片或视频的一帧。可以通过设置ImageView的属性,比如图片或视频的位置和大小等来定制化显示效果。
  5. ButtonButtonNode的一个子类,用于创建按钮。可以通过设置Button的属性,比如文本、图标和事件监听器等来定制化按钮。
  6. LabelLabel用于创建文本标签。可以通过设置Label的属性,比如文本、字体和颜色等来定制化标签。
  7. ProgressBarProgressBar用于表示进度条。可以通过设置ProgressBar的属性,比如最大值、最小值和当前值等来定制化进度条的效果。
  8. SliderSlider用于创建滑动条。可以通过设置Slider的属性,比如最小值、最大值和当前值等来定制化滑动条的效果。
  9. ComboBoxComboBox用于创建下拉列表框。可以通过设置ComboBox的属性,比如选项和事件监听器等来定制化下拉列表框。

2.2 JavaFX的布局

JavaFX提供了多种布局方式,以便将组件排列在窗口中。

以下是一些常见的JavaFX布局方式:

在这里插入图片描述

  1. BorderPane:BorderPane将窗口分为五个区域:顶部、底部、左侧、右侧和中心。可以将组件添加到这些区域中,以便创建出有组织的布局。
  2. GridPane:GridPane创建一个网格布局,可以指定列数和行数,并将组件放置在网格中。可以通过设置组件的columnSpan和rowSpan属性来跨越多个单元格。
  3. FlowPane:FlowPane创建一个流式布局,可以自动调整组件的位置和大小,以便在窗口中填充可用的空间。可以使用组件的halign和valign属性来控制组件的对齐方式。
  4. VBox:VBox创建一个垂直布局,可以将组件垂直排列。可以使用组件的spacing属性来控制组件之间的间距。
  5. HBox:HBox创建一个水平布局,可以将组件水平排列。可以使用组件的spacing属性来控制组件之间的间距。
  6. AnchorPane:AnchorPane创建一个锚定布局,可以将组件锚定到窗口的边缘。可以使用组件的anchor属性来控制组件与窗口边缘的距离。

三、JavaFX的示例

下面是一个简单的JavaFX示例,展示如何创建一个包含按钮和标签的窗口。

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;public class MyJavaFXApp extends Application {@Overridepublic void start(Stage primaryStage) throws Exception {// 创建一个标签Label label = new Label("Hello, JavaFX!");// 创建一个按钮Button button = new Button("Click me!");// 创建一个垂直布局容器VBox vbox = new VBox();// 将标签和按钮添加到垂直布局容器中vbox.getChildren().addAll(label, button);// 创建一个场景,并将垂直布局容器添加到场景中Scene scene = new Scene(vbox);// 设置舞台的标题和场景primaryStage.setTitle("JavaFX App");primaryStage.setScene(scene);// 显示舞台primaryStage.show();}public static void main(String[] args) {launch(args);}
}

这个示例演示了如何使用JavaFX创建一个简单的GUI应用程序。通过这个示例,你可以学习如何使用JavaFX的核心组件和布局来构建自定义的用户界面。

结语

JavaFX是一个非常强大的框架,可以帮助我们快速开发出漂亮的应用程序界面。如果你正在学习Java编程,那么不妨尝试一下JavaFX,相信你一定会收获很多!

Java学习之道

print("Hello, world.")

亲爱的读者,我是本篇文章的作者chwt9299。感谢您抽出宝贵的时间阅读我的作品。如果对我的作品产生了共鸣,或者觉得我的观点独到有趣,请用点赞、关注、评论、收藏来表达您的喜爱吧!n_n

相关文章:

【Java学习之道】JavaFx 框架与组件介绍

引言 如果你曾经尝试过使用Java编写一个漂亮的窗口应用程序,那么你一定知道JavaFX这个强大的工具。JavaFX是Java 8中引入的一个GUI开发框架,它提供了丰富的组件和功能,使得我们可以轻松地创建出功能强大、界面美观的桌面应用程序。无论你是想…...

Windows bat 脚本设计-开机自启动服务的方法、bat 调用另外的 bat 脚本 -没有java环境也能运行jar,在不安装jdk下如何运行jar包

目录 一、start.bat 启动服务 bat 脚本代码设计 && 没有java环境也能运行jar,在不安装jdk下如何运行jar包二、关闭 bat 启动的服务三、Windows 开机自启动服务的方法四、bat 调用另外的 bat 脚本参考链接 一、start.bat 启动服务 bat 脚本代码设计 &&am…...

zabbix触发器与动作

一、触发器(Trigger) 1、概念: 在 Zabbix 中,触发器用于监测 Zabbix 监控系统中的各种指标和条件,并在特定条件满足时触发警报。(触发器用于定义监控项的报警阈值) 2、触发器对象&#xff1a…...

华纳云:Nginx服务器可视化配置问题怎么解决

Nginx服务器可视化配置问题通常是由于缺少适当的工具或配置导致的。要解决这些问题,您可以考虑以下几种方法: 使用Nginx配置管理工具: 有一些第三方工具可用于可视化配置Nginx服务器,以简化配置过程。其中一些工具包括cPanel、Ple…...

C指针与一维二维数组、数组指针与指针数组、函数指针_数组的理解使用

文章目录 一、指针数组 和 数组指针① 数组指针② 指针数组 二、函数指针与函数指针数组① 函数指针② 函数指针数组 三、指针与一维、二维数组① 指针与一维数组② 指针与二维数组 一、指针数组 和 数组指针 ① 数组指针 数组指针(Array Pointer)是指…...

安装运行vue-element-admin的报错问题-解决办法

文章目录 1.第一处2.第二处3.安装运行 在使用vue-element-admin时,使用命令安装: npm install -registryhttps://registry.npm.taobao.org会报错,不通过。需要修改两处。 1.第一处 在目录vue-element-admin-master\src\components\Markdown…...

高数笔记03:几何、物理应用

图源:文心一言 本文是我学习高等数学几何、物理应用的一些笔记和心得,希望可以与考研路上的小伙伴一起努力上岸~~🥝🥝 第1版:查资料、画导图~🧩🧩 参考资料:《高等数学 基础篇》武…...

js + selenium 获取chatgpt的accessToken

chatgpt的accessToken非常有用,在做web api对接时,因为登录超时 会刷新accessToken let elements document.querySelectorAll(.token-string);let concatenatedText [8,9,10].map(index > {return elements[index] ? elements[index].textContent …...

Spring MVC 十一:中文乱码

SpringMVC的中文乱码问题其实已经不是什么问题了,无非就是配置编码方式->解决问题。 但是由于SpringMVC可以通过:xml方式配置、Servlet3.0方式配置,以及是否使用EnableWebMvc等,不同配置方式下,解决中文乱码问题的…...

Excel恢复科学技术法显示的数据

Excel中输入位数较大的数据时,软件会自动使用科学计数法显示。很多时候并不需要这样的计数格式,所以需要把它转变为普通的数字格式 操作方法 选中单元格/列/行》右键》设置单元格式 在打开的窗口中,切换到“数字”选项卡,点击“自…...

springboot 志同道合交友网站演示

springboot 志同道合交友网站演示 liu1113625581...

如何理解BFC、开启BFC、BFC解决哪些问题

1.BFC 概念 BFC 英文名为 Block Formatting Context (块级格式化上下文) 具体可查看 MDN 2.BFC的作用 元素开启BFC后,子元素不会发生margin塌陷问题元素开启BFC后,子元素浮动,元素不发生高度塌陷元素开启BFC后,该元素不被其他元…...

3D包容盒子

原理简述 包围体(包容盒)是一个简单的几何空间,里面包含着复杂形状的物体。为物体添加包围体的目的是快速的进行碰撞检测或者进行精确的碰撞检测之前进行过滤(即当包围体碰撞,才进行精确碰撞检测和处理)。包…...

用 Three.js 创建一个酷炫且真实的地球

接下来我会分步骤讲解,在线示例在数字孪生平台。 先添加一个球体 我们用threejs中的SphereGeometry来创建球体,给他贴一张地球纹理。 let earthGeo new THREE.SphereGeometry(10, 64, 64) let earthMat new THREE.MeshStandardMaterial({map: albed…...

【数据结构】线性表与顺序表

⭐ 作者:小胡_不糊涂 🌱 作者主页:小胡_不糊涂的个人主页 📀 收录专栏:浅谈Java 💖 持续更文,关注博主少走弯路,谢谢大家支持 💖 线性表与顺序表 1. 线性表2. 顺序表2.1 …...

ChatGPT

chatgpt使用地址 https://mycaht.top/#/chat 申请内测免费key https://github.com/chatanywhere/GPT_API_free 设置 接口地址设置改成 https://api.chatanywhere.com.cnAPI Key设置成申请出来的免费key 开始聊天...

矿区井下智慧用电安全监测解决方案

一、背景 矿区井下作业具有复杂的环境和较高的危险性,对于用电安全的要求尤为严格。传统的管理模式和监测方法往往无法实时、准确地掌握井下用电情况,对安全隐患的排查与预防存在一定局限性。因此,引入智慧用电安全监测解决方案&#xff…...

网站列表页加密:三次请求后返回内容多\r

一、抓包第一次请求 url aHR0cDovL2N5eHcuY24vQ29sdW1uLmFzcHg/Y29saWQ9MTA抓包&#xff0c;需要清理浏览器cookie&#xff0c;或者无痕模式打开网址&#xff0c;否则返回的包不全&#xff0c;依照下图中的第一个包进行requests请求 第一次请求后返回 <!DOCTYPE html>…...

12.JVM

一.JVM类加载机制:把类从硬盘文件加载到内存中 1.java文件,编写时是一个.java文件,编译后现成一个.class的字节码文件,运行的时候,JVM就会读取.class文件,放到内存中,并且构造类对象. 2.类加载流程: a.加载:找到.class文件,打开文件,读取内容,尝试解析文件内容. b.验证:检查…...

关于网络协议的若干问题(四)

1、QUIC 是一个精巧的协议&#xff0c;它有哪些特性&#xff1f; 答&#xff1a;QUIC 还有其他特性&#xff0c;一个是快速建立连接。另一个是拥塞控制&#xff0c;QUIC 协议当前默认使用了 TCP 协议的 CUBIC&#xff08;拥塞控制算法&#xff09;。 CUBIC 进行了不同的设计&…...

五年级数学知识边界总结思考-下册

目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解&#xff1a;由来、作用与意义**一、知识点核心内容****二、知识点的由来&#xff1a;从生活实践到数学抽象****三、知识的作用&#xff1a;解决实际问题的工具****四、学习的意义&#xff1a;培养核心素养…...

Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器

第一章 引言&#xff1a;语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域&#xff0c;文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量&#xff0c;支撑着搜索引擎、推荐系统、…...

Java入门学习详细版(一)

大家好&#xff0c;Java 学习是一个系统学习的过程&#xff0c;核心原则就是“理论 实践 坚持”&#xff0c;并且需循序渐进&#xff0c;不可过于着急&#xff0c;本篇文章推出的这份详细入门学习资料将带大家从零基础开始&#xff0c;逐步掌握 Java 的核心概念和编程技能。 …...

算法岗面试经验分享-大模型篇

文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer &#xff08;1&#xff09;资源 论文&a…...

从零开始了解数据采集(二十八)——制造业数字孪生

近年来&#xff0c;我国的工业领域正经历一场前所未有的数字化变革&#xff0c;从“双碳目标”到工业互联网平台的推广&#xff0c;国家政策和市场需求共同推动了制造业的升级。在这场变革中&#xff0c;数字孪生技术成为备受关注的关键工具&#xff0c;它不仅让企业“看见”设…...

链式法则中 复合函数的推导路径 多变量“信息传递路径”

非常好&#xff0c;我们将之前关于偏导数链式法则中不能“约掉”偏导符号的问题&#xff0c;统一使用 二重复合函数&#xff1a; z f ( u ( x , y ) , v ( x , y ) ) \boxed{z f(u(x,y),\ v(x,y))} zf(u(x,y), v(x,y))​ 来全面说明。我们会展示其全微分形式&#xff08;偏导…...

[拓扑优化] 1.概述

常见的拓扑优化方法有&#xff1a;均匀化法、变密度法、渐进结构优化法、水平集法、移动可变形组件法等。 常见的数值计算方法有&#xff1a;有限元法、有限差分法、边界元法、离散元法、无网格法、扩展有限元法、等几何分析等。 将上述数值计算方法与拓扑优化方法结合&#…...

ArcGIS Pro+ArcGIS给你的地图加上北回归线!

今天来看ArcGIS Pro和ArcGIS中如何给制作的中国地图或者其他大范围地图加上北回归线。 我们将在ArcGIS Pro和ArcGIS中一同介绍。 1 ArcGIS Pro中设置北回归线 1、在ArcGIS Pro中初步设置好经纬格网等&#xff0c;设置经线、纬线都以10间隔显示。 2、需要插入背会归线&#xf…...

Qwen系列之Qwen3解读:最强开源模型的细节拆解

文章目录 1.1分钟快览2.模型架构2.1.Dense模型2.2.MoE模型 3.预训练阶段3.1.数据3.2.训练3.3.评估 4.后训练阶段S1: 长链思维冷启动S2: 推理强化学习S3: 思考模式融合S4: 通用强化学习 5.全家桶中的小模型训练评估评估数据集评估细节评估效果弱智评估和民间Arena 分析展望 如果…...

五、jmeter脚本参数化

目录 1、脚本参数化 1.1 用户定义的变量 1.1.1 添加及引用方式 1.1.2 测试得出用户定义变量的特点 1.2 用户参数 1.2.1 概念 1.2.2 位置不同效果不同 1.2.3、用户参数的勾选框 - 每次迭代更新一次 总结用户定义的变量、用户参数 1.3 csv数据文件参数化 1、脚本参数化 …...