自从JavaOne大会推出JavaFX后,我一直比较关注这个项目,它是一种利用Java的脚本技术,功能上近似于Flash。 它的优势在于,Flash虽有很好的功能和普及度,但它永远不能交付Java类库的大部分功能,而 JavaFX可以。因为也给了JavaFX一个“可能性”上的生存空间。
但是由于JavaFX推出的太晚,兼之文档较少,很多人还是对其望而止步,干等下去也不是办法。所以我最近空闲时会写一些JavaFX的小例子以作练习之用。
importjavafx.ui.*;
importjavafx.ui.canvas.*;
//圆点渐变过滤器
classCircleTransitionextendsCompositeNode...{
//设定参数项变量名:类型
attributer:Number;
attributed:Number;
attributew:Number;
attributeh:Number;
attributexp:Number;
attributeimg:Image;
}
//为参数赋值
attributeCircleTransition.r=-45;
attributeCircleTransition.d=16;
attributeCircleTransition.w=320;
attributeCircleTransition.h=240;
attributeCircleTransition.xp=-w;
//注入过滤器参数
functionCircleTransition.composeNode()=Group...{
content:[Clip...{
//注入shape
shape:Rect...{x:0,y:0,width:w,height:h},
//设定偏移
transform:translate(10,40),
//注入Group
content:Group...{
//加载ImageView用以显示图像
content:[ImageView...{
transform:translate(-60,-30),
image:this.img,
//分段绘制图像
},Subtract...{
shape1:Rect...{x:0,y:0,width:w*4,height:h*4},
fill:orange,
//bind
transform:bind[rotate(r,0,h),translate(-w+xp,0)],
shape2:Union...{
content:[foreach(jin[0..w/d],iin[0..h/d*2])Circle...{
radius:j,
cx:w-j*d,
cy:i*d,
},Rect...{
x:-w,y:0,width:w+w/2,height:h*2,
}]
}
}],
}
},View...{
content:GroupPanel...{
varrow=Row...{alignment:BASELINE}
varcolumn1=Column...{}
varcolumn2=Column...{}
//鼠标设为默认
cursor:DEFAULT
rows:[row]
columns:[column1,column2]
content:[SimpleLabel...{
row:row
column:column1
text:"操作:"
},Button...{
row:row
column:column2
opaque:false
mnemonic:T
text:"变更图像"
action:operation()...{
xp=[0,d..w*2]dur2000;
}
}]
}
}
]};
Frame...{
title:"JavaFX-图像渐变效果1"
width:350
height:350
content:Canvas...{content:CircleTransition...{img:...{url:"image.jpg"}}}
centerOnScreen:true
visible:true
};
效果图:
第一次写代码的感觉就是效率太慢……
由解释到执行的效率比Swing还不能令人忍受(当然,有代码优化的余地,但还是太慢)
且抛去效率问题不提,桌面JavaFX现在还有一个比较关键的问题,那就是如何部署。对于从前没有安装过JRE的用户来说,JRE体积太大,而且现在从浏览器上进行按需安装(如使用Java Start Web等)的用户体验也不是特别好。
目前Sun的官方解决思路是为JRE引入一种新型的部署模型,初次下载时体积非常小,只有在需要时才下载其他的JRE组件。但是具体的效果如何,我们还需拭目以待。
PS:如果Windows能普及jre该有多好啊……
分享到:
相关推荐
javaFx 学习--之布局菜单
Java11以后的版本不再集成Javafx,需要单独下载
javaFx 学习--之Adding Dynamic Behavior(加动态特性源码)
javafx-sdk-17.0.2-lts-windows-x64
(1)Ext2.0的入门小实例 (2)ExtJS2.0开发与实践笔记 (3)JavaFx实现-渐变效果之一 (4)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 是上包所解压后的你放置的路径
javafx2-demo
Javafx Script - Dynamic Java Scripting For Rich Internet-Client-Side Applications (Apress, 2007).pdf
javaFx 学习--之组件篇1(边框与布局管理1Label)
javaFx 学习--入门示例程序的源码
javafx组件-中文文档
javaFX-jps-plugin.jar
javafx8api文档
JavaFx2-api.chw虽然用的人少了,但是是个好东西
javafx图形界面实现画图程序,绘制直线、曲 线、圆、椭圆、矩形等,可选中,删除,撤销,移动,改变颜色,改变大小,设置填充边框
javafx-8u45文档api说明。各种类的用法。。
Pro JavaFX 8 - A Definitive Guide to Building Desktop, Mobile
利用javafx绘制动画风扇图,提供pause、reverse、resume按钮
IDEA配置JavaFX环境-CSDN博客.mhtml
javafx-src.zip