JavaFX基础

本文介绍了JavaFX作为GUI开发框架的优势,包括其支持富因特网应用(RIA)、2D/3D及多媒体功能,并对比了AWT和Swing的优缺点。同时,概述了JavaFX程序的基本结构,帮助开发者了解JavaFX入门要点。

引言

JavaFX是开发Java GUI程序的新框架。你将学会如何采用布局面板,按钮,标签,文本域,颜色,字体,图像,图像视图以及形状来开发简单的GUI程序

一、区分JavaFX,Swing和AWT

AWT:抽象窗体工具包
优点:1.开发简单的图形用户界面
缺点:1.不适合开发综合的GUI项目 2.容易被特定于平台的错误影响

Swing:开发桌面GUI
优点:1.使用Java代码在画布上直接绘制 2.更少依赖平台 3.更少使用GUI资源

JavaFX:
优点:1.融入现在GUI技术方便开发富因特网应用(RIA)
2.是一种Web应用,可以表现一般桌面应用具有的特点和功能
3.JavaFX应用可以无缝在桌面或者Web浏览器中运行
4.具有内建的2D,3D,动画支持,以及视频和音频的回访功能
5.作为一个应用独立运行或者在浏览器中运行

AWT—>Swing—>JavaFX
JavaFX更容易学习和使用,Swing原则上已消亡,不会得到任何增强

二、JavaFX程序的基本结构

import javafx.application.Application;
import javafx.scene.Scene;
import javafx
### JavaFX基础教程与开发入门指南 JavaFX 是一种用于构建桌面应用程序的现代工具集,它提供了丰富的 API 和功能来支持开发者创建复杂的用户界面。以下是关于 JavaFX基础知识和用法。 #### 1. JavaFX 的基本结构 JavaFX 应用程序的核心组件包括 `Application`、`Stage` 和 `Scene Graph`。这些是任何 JavaFX 程序的基础构件[^2]。 - **Application**: 这是一个抽象类,所有的 JavaFX 应用都必须继承自这个类并实现其方法。 - **Stage**: 表示窗口或顶级容器,在其中可以放置场景。 - **Scene Graph**: 场景图是由节点组成的树形结构,表示 UI 中的所有可视元素。 #### 2. 创建第一个 JavaFX 应用程序 下面展示了一个最简单的 JavaFX 图形绘制应用实例,该例子展示了如何使用核心 API 来初始化一个窗口[^3]: ```java import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.Label; import javafx.stage.Stage; public class HelloWorld extends Application { @Override public void start(Stage primaryStage) throws Exception { Label label = new Label("Hello, JavaFX!"); Scene scene = new Scene(label, 300, 250); primaryStage.setTitle("My First JavaFX App"); primaryStage.setScene(scene); primaryStage.show(); } public static void main(String[] args) { launch(args); } } ``` 此代码片段定义了一个带有标签的应用程序,并设置了窗口大小以及标题。 #### 3. 处理键盘事件 通过设置按键监听器,您可以捕获用户的键盘输入行为。需要注意的是,如果当前处于中文输入模式下,则快捷键可能无法正常工作[^4]。 ```java button.setOnKeyPressed(event -> { System.out.println("Key Pressed: " + event.getCode().getName()); }); ``` 上述代码实现了对按钮上按下的任意键进行响应的功能。 #### 4. 使用 FlowPane 实现动态布局管理 除了常见的 VBox 和 HBox 容器外,FlowPane 提供了一种更加灵活的方式来进行子项排列——当空间不足时自动换行[^5]。 ```java FlowPane flowPane = new FlowPane(); flowPane.setPrefWrapLength(200); // 设置首选包裹长度 for (int i=0;i<10;i++) { Button btn = new Button("Button "+i); flowPane.getChildren().add(btn); } ``` 以上代码演示了如何向 FlowPane 添加多个按钮,并让它们随着父级尺寸变化而重新分布位置。 --- ####
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值