【Java学习之道】JavaFx 框架与组件介绍
引言
如果你曾经尝试过使用Java编写一个漂亮的窗口应用程序,那么你一定知道JavaFX这个强大的工具。JavaFX
是Java 8
中引入的一个GUI开发框架,它提供了丰富的组件和功能,使得我们可以轻松地创建出功能强大、界面美观的桌面应用程序。无论你是想开发一个简单的计算器程序,还是想构建一个复杂的游戏界面,JavaFX
都能满足你的需求。
一、JavaFX的主要特点
- 丰富的图形和媒体支持:
JavaFX
支持各种图形和媒体效果,包括3D图形、渐变和阴影等。此外,JavaFX
还支持各种格式的音频和视频,可以轻松创建出富有表现力的多媒体应用。 - 新的UI控件:
JavaFX
提供了新的UI控件,包括进度条、滑块、表格等。这些控件不仅功能强大,而且易于使用和自定义。 - 动画效果:
JavaFX
提供了强大的动画效果支持,可以轻松实现各种动画效果,比如旋转、缩放、平移等。 - 支持各种操作系统:
JavaFX
可以在各种操作系统上运行,包括Windows、Linux和MacOS
等。
注:虽然
JavaFX
是Java最新的GUI框架,但Swing
仍然具有一定的价值。在一些旧的Java应用中,Swing
被广泛使用,因此了解如何使用Swing
也是非常必要的。在开发新的Java GUI应用时,建议优先使用JavaFX
,因为它提供了更先进的图形和媒体支持。
二、JavaFx 框架与组件介绍
在本节中,我们将深入探讨JavaFX
框架的核心组件和布局。通过本节的学习,你将了解如何使用JavaFX
创建各种GUI元素和布局。
2.1 JavaFX的核心组件
JavaFX
的核心组件包括以下几种:
- Node:
Node
是JavaFX
中的基本组件,所有JavaFX
组件都继承自Node
类。Node
类定义了一些基本的图形属性,比如颜色、透明度和填充等。 - Shape:
Shape
是Node
的一个子类,用于绘制简单的图形,比如线条、矩形和圆形等。可以通过设置Shape
的属性,比如颜色、线宽和线型等来定制化图形。 - Text:
Text
是Node
的另一个子类,用于绘制文本。可以通过设置Text
的属性,比如字体、颜色和大小等来定制化文本。 - ImageView:
ImageView
用于显示图片或视频的一帧。可以通过设置ImageView
的属性,比如图片或视频的位置和大小等来定制化显示效果。 - Button:
Button
是Node
的一个子类,用于创建按钮。可以通过设置Button
的属性,比如文本、图标和事件监听器等来定制化按钮。 - Label:
Label
用于创建文本标签。可以通过设置Label
的属性,比如文本、字体和颜色等来定制化标签。 - ProgressBar:
ProgressBar
用于表示进度条。可以通过设置ProgressBar
的属性,比如最大值、最小值和当前值等来定制化进度条的效果。 - Slider:
Slider
用于创建滑动条。可以通过设置Slider
的属性,比如最小值、最大值和当前值等来定制化滑动条的效果。 - ComboBox:
ComboBox
用于创建下拉列表框。可以通过设置ComboBox
的属性,比如选项和事件监听器等来定制化下拉列表框。
2.2 JavaFX的布局
JavaFX
提供了多种布局方式,以便将组件排列在窗口中。
以下是一些常见的JavaFX
布局方式:
- BorderPane:BorderPane将窗口分为五个区域:顶部、底部、左侧、右侧和中心。可以将组件添加到这些区域中,以便创建出有组织的布局。
- GridPane:GridPane创建一个网格布局,可以指定列数和行数,并将组件放置在网格中。可以通过设置组件的columnSpan和rowSpan属性来跨越多个单元格。
- FlowPane:FlowPane创建一个流式布局,可以自动调整组件的位置和大小,以便在窗口中填充可用的空间。可以使用组件的halign和valign属性来控制组件的对齐方式。
- VBox:VBox创建一个垂直布局,可以将组件垂直排列。可以使用组件的spacing属性来控制组件之间的间距。
- HBox:HBox创建一个水平布局,可以将组件水平排列。可以使用组件的spacing属性来控制组件之间的间距。
- 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
,相信你一定会收获很多!
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、触发器对象:…...
华纳云: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 开始聊天...

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

网站列表页加密:三次请求后返回内容多\r
一、抓包第一次请求 url aHR0cDovL2N5eHcuY24vQ29sdW1uLmFzcHg/Y29saWQ9MTA抓包,需要清理浏览器cookie,或者无痕模式打开网址,否则返回的包不全,依照下图中的第一个包进行requests请求 第一次请求后返回 <!DOCTYPE html>…...

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

关于网络协议的若干问题(四)
1、QUIC 是一个精巧的协议,它有哪些特性? 答:QUIC 还有其他特性,一个是快速建立连接。另一个是拥塞控制,QUIC 协议当前默认使用了 TCP 协议的 CUBIC(拥塞控制算法)。 CUBIC 进行了不同的设计&…...

Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动
一、前言说明 在2011版本的gb28181协议中,拉取视频流只要求udp方式,从2016开始要求新增支持tcp被动和tcp主动两种方式,udp理论上会丢包的,所以实际使用过程可能会出现画面花屏的情况,而tcp肯定不丢包,起码…...

HTML 列表、表格、表单
1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...

dedecms 织梦自定义表单留言增加ajax验证码功能
增加ajax功能模块,用户不点击提交按钮,只要输入框失去焦点,就会提前提示验证码是否正确。 一,模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...
基于数字孪生的水厂可视化平台建设:架构与实践
分享大纲: 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年,数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段,基于数字孪生的水厂可视化平台的…...
Java入门学习详细版(一)
大家好,Java 学习是一个系统学习的过程,核心原则就是“理论 实践 坚持”,并且需循序渐进,不可过于着急,本篇文章推出的这份详细入门学习资料将带大家从零基础开始,逐步掌握 Java 的核心概念和编程技能。 …...

SpringTask-03.入门案例
一.入门案例 启动类: package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)
Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败,具体原因是客户端发送了密码认证请求,但Redis服务器未设置密码 1.为Redis设置密码(匹配客户端配置) 步骤: 1).修…...

Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
rnn判断string中第一次出现a的下标
# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...
CRMEB 中 PHP 短信扩展开发:涵盖一号通、阿里云、腾讯云、创蓝
目前已有一号通短信、阿里云短信、腾讯云短信扩展 扩展入口文件 文件目录 crmeb\services\sms\Sms.php 默认驱动类型为:一号通 namespace crmeb\services\sms;use crmeb\basic\BaseManager; use crmeb\services\AccessTokenServeService; use crmeb\services\sms\…...