JAVAFX-2 开发应用
2024-08-28 03:03:55
理解javafx 架构
● 场景图(Scene Graph)
● JavaFX功能的公开API(Java Public APIs for JavaFX Features)
● 图形系统(Graphics System)
● Glass窗体工具包(Glass Windowing Toolkit)
● 多媒体和图像(Media and Images)
● Web组件(Web Component)
● CSS
● UI控件(UI Controls)
● 布局(Layout)
● 2-D和3-D转换(2-D and 3-D Transformations)
● 视觉特效(Visual Effects)
场景图(Scene Graph)
- 它是构建JavaFX应用的入口。它是一个层级结构的节点树,表示了所有用户界面的视觉元素。它可以处理输入,并且可以被渲染。
在场景图中的一个元素被称为一个节点(Node)。每个节点都有一个ID、样式类和包围盒(bounding volume)。除了根节点之外 ---- 简而言之 根据节点值实现渲染 - 以下特性
● 效果(Effects),例如模糊和阴影
● 不透明度(Opacity)
● 变换(Transforms)
● 事件处理器(Event handlers,例如鼠标、键盘和输入法)
● 应用相关的状态(Application-specific state)
用代码实际理解基本使用过程
- 继承application 覆盖 start() 方法
- 我在代码里说明
package demo;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class P1 extends Application{
@Override
public void start(Stage primaryStage) throws Exception {
//构建面板
StackPane root = new StackPane();
//创建场景
Scene scene = new Scene(root);
//加入舞台
primaryStage.setHeight(400);
primaryStage.setWidth(500);
primaryStage.setResizable(false);
primaryStage.setScene(scene);
primaryStage.show();
}
/**
* 嵌入了JavaFX代码的Swing应用程序仍需要main()方法
* @param args
*/
public static void main(String[] args) {
launch(args);
}
}
- 硬编码的方式创建应用(不推荐)
下面 在demo中创建一个 text 组件 button 组件
package demo;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.AnchorPane;
import javafx.scene.text.Text;
import javafx.stage.Stage;
public class P1 extends Application {
private Button btn;
private Text textFiled;
@Override
public void start(Stage primaryStage) throws Exception {
// 构建面板
AnchorPane root = new AnchorPane();
// 创建场景
Scene scene = new Scene(root);
// 组件初始化
textFiled = new Text("fx");
btn = new Button("cilck");
// 绑定按钮事件
btn.setOnAction((e) -> {
textFiled.setText("按钮被点击");
});
// 加入面板
root.getChildren().addAll(textFiled,btn);
AnchorPane.setLeftAnchor(btn,100.0);
AnchorPane.setBottomAnchor(btn,100.0);
AnchorPane.setTopAnchor(textFiled, (double) 20);
AnchorPane.setLeftAnchor(textFiled, (double) 20);
// 加入舞台
primaryStage.setHeight(400);
primaryStage.setWidth(500);
primaryStage.setResizable(false);
primaryStage.setScene(scene);
primaryStage.show();
}
/**
* 嵌入了JavaFX代码的Swing应用程序仍需要main()方法
*
* @param args
*/
public static void main(String[] args) {
launch(args);
}
}
最新文章
- poj1068
- Java就业指导
- NET基础(2):类型转换
- 转载: Qt 学习之路 2归档
- Avizo - 高级三维可视化及分析软件
- 课堂练习:给定一个十进制的正整数,写下从1开始,到N的所有整数,然后数一下其中出现“1”的个数。
- C++标准库概述 [转]
- POJ2406 Power Strings KMP算法
- zoj 3620 Escape Time II
- JAVA中的finalize()方法
- lession2:使用HTTP Cookie 管理器来传递cookies值
- 【linux】mysql安装问题 g++: not found
- mybatis-generator 代码自动生成工具包
- as3.0 比较两个数组
- java抽象类详解
- JVM垃圾回收算法解析
- 【repost】jQuery笔记总结
- (网页)angular中实现li或者某个元素点击变色的两种方法(转)
- python第七十一天---堡垒机
- 内存溢出和内存泄漏的区别(ZZ)
热门文章
- java中indexOf()
- Java_Time_01_获取当前时间
- 勤于思考:Objective-C特性的扩展
- linux增加vlan网卡配置
- ACM学习历程—SNNUOJ 1110 传输网络((并查集 &;&; 离线) || (线段树 &;&; 时间戳))(2015陕西省大学生程序设计竞赛D题)
- sql 的基础语句
- Grunt:GruntFile.js
- java.lang.NoClassDefFoundError: org/springframework/dao/support/DaoSupport
- [poj2891]Strange Way to Express Integers(扩展中国剩余定理)
- sparse matrix format