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

javafx基础知识

查询jdk版本: java -version   

什么是JavaFX?

javaFX是用于构建富Internet应用程序的Java库。

JavaFX提供了一种声明式的用户界面描述语言FXML,可以将界面和逻辑代码分离,提高了代码的可读性和可维护性。
它还支持CSS样式表,使得界面的外观和风格可以轻松定制。
JavaFX提供了丰富的图形和媒体API,并通过硬件加速图形利用现代Graphical Processing Unit 。
JavaFX还提供了接口,开发人员可以使用这些接口组合图形动画和UI控件。
使用此库编写的应用程序可以跨多个平台一致地运行。 使用JavaFX开发的应用程序可以在各种设备上运行,如台式电脑,手机,电视,平板电脑等。

在Java早期,程序员主要依赖于Advanced Windowing Toolkit (AWT) 和Swing等库来创建用户界面。这些库提供了一些基本的GUI组件和功能,但在某些方面可能缺乏一些现代化的特性和样式。

然而,随着JavaFX的出现,Java程序员现在可以使用JavaFX来开发GUI应用程序。

 javafx架构

javafx.animation- 包含用于向JavaFX节点添加基于过渡的动画(如填充,淡入淡出,旋转,缩放和平移)的类。
javafx.application- 包含一组负责JavaFX应用程序生命周期的类。
javafx.css- 包含用于向JavaFX GUI应用程序添加类似CSS样式的类。
javafx.event- 包含用于传递和处理JavaFX事件的类和接口。
javafx.geometry- 包含用于定义2D对象并对其执行操作的类。
javafx.stage- 此包包含JavaFX应用程序的顶级容器类。
javafx.scene- 此包提供了支持场景图的类和接口。 此外,它还提供了子包,如画布,图表,控件,效果,图像,输入,布局,媒体,绘画,形状,文本,转换,Web等。有几个组件支持JavaFX丰富的API

舞台
 在JavaFX中,"舞台"(Stage)是JavaFX应用程序的顶级容器,它代表了应用程序的窗口。它承载了一个或多个场景(Scene),并提供窗口的外观和行为控制,如标题、大小、图标等。

每个JavaFX应用程序都必须至少包含一个舞台。

舞台是JavaFX应用程序中的顶级容器,用于承载一个或多个场景(Scene)。舞台提供了应用程序窗口的外观和行为,包括标题、大小、图标、关闭按钮等。

以下是一些关于舞台的重要概念和使用方法:

1.创建舞台:

Stage primaryStage = new Stage();
```
使用`new Stage()`语句创建一个新的舞台对象。

2.设置舞台属性:

primaryStage.setTitle("My Application");
primaryStage.setWidth(800);
primaryStage.setHeight(600);
```
使用`setTitle()`方法设置舞台的标题,使用`setWidth()`和`setHeight()`方法设置舞台的宽度和高度。

3.设置舞台图标:

Image icon = new Image("icon.png");
primaryStage.getIcons().add(icon);
```
使用`getIcons().add()`方法添加舞台的图标。图标可以是`javafx.scene.image.Image`对象,也可以是图像文件的URL或文件路径。

4.

Scene scene = new Scene(rootNode, width, height);
primaryStage.setScene(scene);
```
创建一个场景对象,并使用`setScene()`方法将场景设置为舞台的场景。场景定义了应用程序窗口中的可视化内容。

5.显示舞台:

primaryStage.show();
```
使用`show()`方法显示舞台,使其可见。

6.关闭舞台

primaryStage.close();
```
使用`close()`方法关闭舞台,结束应用程序。

场景 
在JavaFX中,"场景"(Scene)是JavaFX应用程序中的一个重要概念。场景代表了应用程序窗口中的一个可视化区域,它是JavaFX界面的容器。

每个JavaFX应用程序至少包含一个场景,而且每个场景都有一个根节点(Root Node)。根节点是场景中的顶级容器,承载了所有其他节点,并确定它们在场景中的布局和层次关系。

以下是一些关于场景的重要概念和使用方法:
1.创建场景:

Scene scene = new Scene(rootNode, width, height);
```
通过指定根节点、宽度和高度来创建一个场景对象。根节点是场景中的顶级容器,宽度和高度定义了场景的大小

2.设置场景

primaryStage.setScene(scene);
```
将创建好的场景设置为主舞台(`primaryStage`)的场景。主舞台是JavaFX应用程序窗口的顶级容器。

3.获取根节点:

Parent rootNode = scene.getRoot();
```
通过调用`getRoot()`方法,可以获取场景中的根节点。

4.获取场景尺寸

double width = scene.getWidth();
double height = scene.getHeight();
```
使用`getWidth()`和`getHeight()`方法,可以获取场景的宽度和高度。

5.处理场景事件

scene.setOnMouseClicked(event -> {// 处理鼠标点击事件
});
```
使用`setOn<Event>()`方法,可以为场景注册事件处理程序,例如处理鼠标点击、键盘按键等事件。

6.切换场景

primaryStage.setScene(newScene);
```
通过将新的场景对象设置为主舞台的场景,可以切换到另一个场景。

场景是JavaFX应用程序中的核心组件之一,它定义了应用程序窗口中的可视化内容。通过创建和管理场景,可以实现界面布局、事件处理和场景切换等功能。场景的根节点承载了所有其他节点,并决定了它们在场景中的布局和层次关系。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【RAG KG】GraphRAG开源:查询聚焦摘要的图RAG方法
  • 打卡第7天-----哈希表
  • Istio实战教程:Service Mesh部署与流量管理
  • AutoMQ 与蚂蚁数科达成战略合作
  • 机器学习——随机森林
  • WEB安全-文件上传漏洞
  • android 使用系统工具bootchart统计开机时长
  • 2-29 基于matlab的CEEMD
  • 【开发环境】搭建PX4+ROS2+MAVROS2+Simulink+Optitrack实物联合仿真环境
  • C# 中使用模式匹配 备忘
  • RT2-使用NLP的方式去训练机器人控制器
  • 半监督方案跟域自适应方案哪个更能提升目标检测泛化效果?
  • [高频 SQL 50 题(基础版)]第一千七百五十七题,可回收且低脂产品
  • Perl 语言入门学习及实践
  • 运维系列.Nginx:自定义错误页面
  • Google 是如何开发 Web 框架的
  • 03Go 类型总结
  • Angular 2 DI - IoC DI - 1
  • docker容器内的网络抓包
  • Druid 在有赞的实践
  • Java 内存分配及垃圾回收机制初探
  • Java,console输出实时的转向GUI textbox
  • Java编程基础24——递归练习
  • MQ框架的比较
  • PHP面试之三:MySQL数据库
  • Vue.js-Day01
  • 读懂package.json -- 依赖管理
  • 检测对象或数组
  • 快速构建spring-cloud+sleuth+rabbit+ zipkin+es+kibana+grafana日志跟踪平台
  • 猫头鹰的深夜翻译:Java 2D Graphics, 简单的仿射变换
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 小程序button引导用户授权
  • 学习JavaScript数据结构与算法 — 树
  • 学习Vue.js的五个小例子
  • ​14:00面试,14:06就出来了,问的问题有点变态。。。
  • ​LeetCode解法汇总518. 零钱兑换 II
  • ​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)
  • # Swust 12th acm 邀请赛# [ K ] 三角形判定 [题解]
  • #如何使用 Qt 5.6 在 Android 上启用 NFC
  • #图像处理
  • #我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM
  • (1)(1.9) MSP (version 4.2)
  • (152)时序收敛--->(02)时序收敛二
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (C语言)字符分类函数
  • (Matalb时序预测)WOA-BP鲸鱼算法优化BP神经网络的多维时序回归预测
  • (ZT) 理解系统底层的概念是多么重要(by趋势科技邹飞)
  • (备忘)Java Map 遍历
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (七)微服务分布式云架构spring cloud - common-service 项目构建过程
  • (转)socket Aio demo
  • . ./ bash dash source 这五种执行shell脚本方式 区别
  • .NET Core实战项目之CMS 第一章 入门篇-开篇及总体规划
  • .NetCore Flurl.Http 升级到4.0后 https 无法建立SSL连接
  • .net经典笔试题