JavaFX属于脚本语言,并且也采取了弱类型进行数据处理,具体对应关系如下:
JavaFX
Java
String |
java.lang.String |
Boolean |
java.lang.Boolean |
Number |
java.lang.Number |
Integer |
byte,short,int,long,BigInteger |
例子:
// var s = "Hello";
// s.toUpperCase(); // 结果 "HELLO";
// s.substring(1); // 结果 "ello";
// var n = 1.5;
// n.intValue(); // 结果 1
// (1.5).intValue(); // 结果 1
// s.substring(n); // 结果 "ello"
// var b = true;
// b instanceof Boolean; // 结果 true
这种方式虽然减少了类型转换的烦恼……但也影响解释速度,个人不是太认可……(而且在JavaFX中,很多还是需要转换类型的……)
JavaFX脚本为多种多样的操作提供了声明式、无中间程序逻辑的语法,这些操作包括创建2D动画、设置属性或者声明在模式和视图对象之间的绑定依赖关系。
JavaFX以operation代替了Function,换汤不换药,无视中……
还有‘+’已无法在JavaFX中连接字符串用,需要写成如"Hello ".concat("World")的形式。
大体上先想起这么多,继续写个例子:
/***//**
*<p>
*Title:LoonFramework
*</p>
*<p>
*Description:
*</p>
*<p>
*Copyright:Copyright(c)2007
*</p>
*<p>
*Company:LoonFramework
*</p>
*
*@authorchenpeng
*@email:ceponline@yahoo.com.cn
*@version0.1
*/
importjavafx.ui.*;
importjavafx.ui.canvas.*;
importjava.util.*;
importjava.lang.System;
importjava.lang.Thread;
//JavaFXJava
//Stringjava.lang.String
//Booleanjava.lang.Boolean
//Numberjava.lang.Number
//Integerbyte,short,int,long,BigInteger
//vars="Hello";
//s.toUpperCase();//结果"HELLO";
//s.substring(1);//结果"ello";
//varn=1.5;
//n.intValue();//结果1
//(1.5).intValue();//结果1
//s.substring(n);//结果"ello"
//varb=true;
//binstanceofBoolean;//结果true
classCircleModel...{
attributex:Number;
attributey:Number;
attributer:Number;
attributec:Color;
}
classCircleDrawextendsCompositeNode...{
attributetags:CircleModel*;
//javafx的操作和c++类似需要提前声明,否则会[Nosuchfunction]
operationmakeing();
}
//实现composeNode操作
operationCircleDraw.composeNode()...{
returnGroup...{
content:[
//遍历tags
foreach(tintags)
Circle...{
//绑定
cx:bindt.x
cy:bindt.y
radius:bindt.r
fill:bindt.c
}
]
};
}
//实现makeing操作
operationCircleDraw.makeing()...{
varrand=newRandom();
for(unitintervalunitindur-1)...{
for(tintags)...{
if(t.r==0andrand.nextInt(100)>95)...{
//产生随机坐标
t.x=rand.nextInt(400)+40;
t.y=rand.nextInt(400)+40;
t.r=4;
//变换color
t.c=rgba:Color(
rand.nextInt(256),
rand.nextInt(256),
rand.nextInt(256),
rand.nextInt(128)+64
);
}
//类Basic语法也成……
t.r=if(t.r>200)or(t.r==0)then0elset.r+4;
}
//延迟
Thread.sleep(50);
}
}
vartagContainer=CircleDraw...{
tags:foreach(iin[0..15])CircleModel...{}
};
Frame...{
title:"JavaFX-随机画圆"
centerOnScreen:true
//javafx也可使用通常java类
onClose:operation()...{
System.exit(0);
}
width:430
height:430
resizable:false
content:
//背景设置
Canvas...{
background:black
content:tagContainer
}
visible:true
}
//执行操作
tagContainer.makeing();
分享到:
相关推荐
javafx-sdk-17.0.2-lts-windows-x64
Java11以后的版本不再集成Javafx,需要单独下载
linux系统下,可用如下两...java --module-path /home/ubuntu20/javafx-sdk-18/lib --add-modules javafx.controls,javafx.fxml -jar EQMSAny_jar.jar 其中 /home/ubuntu20/javafx-sdk-18 是上包所解压后的你放置的路径
javaFX-jps-plugin.jar
javafx_sdk-2_2_21-windows-i586
javaFx 学习--之布局菜单
JavaFX11,让你使用java快速开发桌面软件,版本为11.0.2,windows操作系统.我博客内有对应教程.
javaFx 学习--之Adding Dynamic Behavior(加动态特性源码)
luke-javafx-7.3.1-luke-release.zip,luke-javafx-7.3.1-luke-release.zip
javaFx 学习--入门示例程序的源码
javafx_sdk-2_2_7-windows-i586
NULL 博文链接:https://angkor.iteye.com/blog/410382
javafx-commons-2.0.1
javafx-rest-archetype.zip,javafx基本原型提供了一个maven原型,用于生成基本javafx rest客户机服务器启动程序
javaFx 学习--之组件篇1(边框与布局管理1Label)
先决条件JDK 11 Maven 3在本地安装原型要将所有原型安装在本地存储库中,请执行以下命令: git clone https://github.com/openjfx/javafx-maven-archetypes.gitcd javafx-maven-archetypesmvn clean install这将在...
javafx使用指南-目录版.pdf
javafx.base-11.0.0-SNAPSHOT-linux.jar,javafx.base-11.0.0-SNAPSHOT-mac.jar,javafx.base-11.0.0-SNAPSHOT-win.jar,javafx-base-11.jar,javafx-base-11-win.jar,javafx-graphics-11.jar,javafx-graphics-11-win....
javafx-sdk-13.0.2.JavaFX is a set of graphics and media packages that enables developers to design, create, test, debug, and deploy rich client applications that operate consistently across diverse ...
javafx2-demo