JAVAFX-2 开发应用
理解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);
}
}
JAVAFX-2 开发应用的更多相关文章
- 问题记录:JavaFx 鼠标滑轮滚动事件监听!
问题描述: 在listview的item里面添加鼠标拖拽排序功能.代码如下: setOnMouseDragged(event -> { //设定鼠标长按0.3秒后才可拖拽 防止误操作 isCan ...
- JavaFx客户端服务器C/S架构搭建
客户端获取服务器端软件更新版本方法: package com.platform.ui.update; import java.io.BufferedInputStream; import java.i ...
- JavaFX 教程资料收集
1. JavaFX中文资料 http://www.javafxchina.net/blog/docs/tutorial1/ 2. JavaFX入门教程 http://www.xrpmoon.com/c ...
- 在 linux 上部署并运行 JavaFX 项目
环境 redhat 6.4.eclipse安装JavaFX插件 项目详情及代码参见 在linux上配置并创建JavaFX项目 ,该部署即此文章中项目的部署 配置build.fxbuild 生成buil ...
- 在linux上配置并创建JavaFX项目
本环境为linux配置,因为这里的JavaFX项目是为定制Oracle监控工具而写的.现Oracle已收购Java好几年,用它自己的产生监控自己的东西还是很兼容的.此处Eclipse 为4.5版本. ...
- javafx之登陆界面的跳转
界面布局用到的是fxml而非纯java代码,工具是javafx sence builder 账号:account 密码:password 登陆成功: 可以点击退出登陆返回到登陆页面 工程目录: pac ...
- JAVAFX纯手写布局
主页面效果: 第一栏的效果: 工程目录: package MessageBean; /** * * @author novo */ public class Message { private Str ...
- javafx之HTTP协议交互
javafx端要获取获取如下信息: 服务器端获取的数据: javafx客户端发送的数据以及获取的数据: 工程目录: package Httputil; import IPsite.IPaddress; ...
- eclipse开发 javafx(转)
了解过JavaFX的都知道,JavaFX自从2.0版本开始,已经完全抛弃了之前的script语言,才用纯java来实现.这样的好处就是1.让使用Java的IDE进行JavaFX的开发成为可能,2.Ja ...
- JavaFX結合 JDBC, Servlet, Swing, Google Map及動態產生比例圖 (3):部署設定及應用 (转帖)
說明:這一篇主要是說明如何將程式部署到Application Server,以及程式如何運作,產生的檔案置於何處,以及如何以瀏覽器呈現(Applet),或是當成桌面應用程式,或是 桌面Applet,這 ...
随机推荐
- 8--json交互
8.1 为什么要进行json数据交互 json数据格式在接口调用.html页面中较常用,json格式较简单,解析较方便. 比如:webservice接口,传输json数据. 8.2 spri ...
- osx快捷键表示图
- TCP/IP--VLSM
##########################VLSM################### 实际案例: 192.168.1.0/28 有几个网络号:2的4次方:16个网络号 : 有几个主机号: ...
- CF285 E Positions in Permutations——“恰好->大于”的容斥和允许“随意放”的dp
题目:http://codeforces.com/contest/285/problem/E 是2018.7.31的一场考试的题,当时没做出来. 题解:http://www.cnblogs.com/y ...
- 乱写的一个SQL框架
闲来没事,看了mybatis的实现形式,就心血来潮的自己弄了一个仿照mybatis的框架,性能肯定不好,而且有很多问题,但是是一次有益的尝试 1.基本配置文件 <!--加载数据源--> & ...
- JSON 的正确用法:Python、MongoDB、JavaScript与AjaxJSON 的正确用法:Python、MongoDB、JavaScript与Ajax
本文主要总结网站编写以来在传递 JSON 数据方面遇到的一些问题以及目前采用的解决方案.网站数据库采用 MongoDB,后端是 Python,前端采用“半分离”形式的 Riot.js,所谓半分离,是说 ...
- shell 统计词频脚本
#!/bin/bash if [ $# -ne 1 ]; then echo "Usage:$0 filename"; exit -1 fi filename=$1 egrep - ...
- 12 Vue学习 项目技术栈
vue2 + vuex + vue-router + webpack + ES6/7 + less + element-ui 1:vuex: Vuex 是一个专为 Vue.js 应用程序开发的状态管理 ...
- socket函数的使用方法(参数详解)
socket函数的使用方法如下: int socket(int domain, int type, int protocol); 在参数表中,domain指定使用何种的地址类型,比较常用的有: PF_ ...
- POJ - 3037 Skiing SPFA
Skiing Bessie and the rest of Farmer John's cows are taking a trip this winter to go skiing. One day ...