当前位置: 首页 > 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 进行了不同的设计&…...

逻辑回归:给不确定性划界的分类大师

想象你是一名医生。面对患者的检查报告&#xff08;肿瘤大小、血液指标&#xff09;&#xff0c;你需要做出一个**决定性判断**&#xff1a;恶性还是良性&#xff1f;这种“非黑即白”的抉择&#xff0c;正是**逻辑回归&#xff08;Logistic Regression&#xff09;** 的战场&a…...

QMC5883L的驱动

简介 本篇文章的代码已经上传到了github上面&#xff0c;开源代码 作为一个电子罗盘模块&#xff0c;我们可以通过I2C从中获取偏航角yaw&#xff0c;相对于六轴陀螺仪的yaw&#xff0c;qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...

深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法

深入浅出&#xff1a;JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中&#xff0c;随机数的生成看似简单&#xff0c;却隐藏着许多玄机。无论是生成密码、加密密钥&#xff0c;还是创建安全令牌&#xff0c;随机数的质量直接关系到系统的安全性。Jav…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业

6月9日&#xff0c;国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解&#xff0c;“超级…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)

骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术&#xff0c;它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton)&#xff1a;由层级结构的骨头组成&#xff0c;类似于人体骨骼蒙皮 (Mesh Skinning)&#xff1a;将模型网格顶点绑定到骨骼上&#xff0c;使骨骼移动…...

laravel8+vue3.0+element-plus搭建方法

创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...

深度学习习题2

1.如果增加神经网络的宽度&#xff0c;精确度会增加到一个特定阈值后&#xff0c;便开始降低。造成这一现象的可能原因是什么&#xff1f; A、即使增加卷积核的数量&#xff0c;只有少部分的核会被用作预测 B、当卷积核数量增加时&#xff0c;神经网络的预测能力会降低 C、当卷…...

【LeetCode】算法详解#6 ---除自身以外数组的乘积

1.题目介绍 给定一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0c;且在 O…...

redis和redission的区别

Redis 和 Redisson 是两个密切相关但又本质不同的技术&#xff0c;它们扮演着完全不同的角色&#xff1a; Redis: 内存数据库/数据结构存储 本质&#xff1a; 它是一个开源的、高性能的、基于内存的 键值存储数据库。它也可以将数据持久化到磁盘。 核心功能&#xff1a; 提供丰…...

UE5 音效系统

一.音效管理 音乐一般都是WAV,创建一个背景音乐类SoudClass,一个音效类SoundClass。所有的音乐都分为这两个类。再创建一个总音乐类&#xff0c;将上述两个作为它的子类。 接着我们创建一个音乐混合类SoundMix&#xff0c;将上述三个类翻入其中&#xff0c;通过它管理每个音乐…...