JavaFX包含了许多强大的功能,它们都是Java SE不具备的,如图表Charting,动画,媒体播放,RSS/Atom等,于是程序员常常讨论如何在Java中调用JavaFX功能。笔者文章纯Java代码调用JavaFX功能和JavaFX和Java之间的互操作性对此作过专题讨论。在Stephen Chin的开源项目JFXtras***版本中, 提供了一个JavaFX的封装类,可以在Swing应用中显示JavaFX的图性元素(动画,图表等)。

站在用户的角度思考问题,与客户深入沟通,找到泰州网站设计与泰州网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站制作、成都网站设计、企业官网、英文网站、手机端网站、网站推广、域名注册、网络空间、企业邮箱。业务覆盖泰州地区。
这是个十分有用的功能,对广大的Java(Swing)开发人员来说是个好消息。JFXtras的源代码中包含了相关的演示程序(SceneToJComponentScene.fx和 SceneToJComponentTest.java)。我把这个程序修改了一下,以便说明问题。
- /*
 - *MyScene.fxhttp://www.javafxblogs.com
 - *@authorHenryZhang
 - */
 - packageswingtest;
 - importjavafx.scene.Scene;
 - importjavafx.scene.text.*;
 - importjavafx.scene.paint.*;
 - importjavafx.scene.shape.Rectangle;
 - importjavafx.animation.Timeline;
 - importjavafx.animation.KeyFrame;
 - defw=500;
 - defh=400;
 - publicclassMySceneextendsScene{
 - varxx=w/3;
 - varyy=h/2;
 - varrotate=0;
 - vartext="";
 - vartl=Timeline{
 - repeatCount:Timeline.INDEFINITE
 - keyFrames:[
 - KeyFrame{
 - time:70ms
 - action:function(){
 - text=JavaFXToSwingTest.tf.getText();
 - rotate=(rotate+5)mod360;
 - }
 - }
 - ]
 - }
 - overridevarcontent=[
 - Rectangle{
 - width:w,height:h
 - fill:Color.BLUE
 - },
 - Text{
 - font:Font{
 - size:24
 - }
 - layoutX:bindxx
 - layoutY:bindyy
 - rotate:bindrotate
 - content:bindtext
 - fill:Color.YELLOW
 - }
 - ];
 - init{tl.play();}
 - }
 
1) 在上述程序中,我们用JavaFX的代码去轮询Java的变量值,实际中这会损失比较多的性能,所以我们可以从Java代码中主动把数据变化通知JavaFX。这需要一种从Java调用javafx的技巧,可以参见本人文章:用Java代码调用JavaFX功能。
2) 在Swing程序中调用JavaFX是可行的,那么应该怎样编译和运行这样的程序呢。其实,JavaFX功能也就是一些jar文件,因此和Java的结合方式还是比较简单的。编译的方法主要有两种,一种就是用JavaFX 的编译器javafxc来编译Java和JavaFX的代码。第二种就是用javafxc编译JavaFX代码,用javac编译java代码。运行程序的时候,我们可以选择javafx或java命令即可,可以参见本人文章:JavaFX技巧:纯Java代码调用JavaFX的例子的详细说明。
【编辑推荐】
                网页名称:介绍JavaFX功能与Swing的关系
                
                文章网址:http://www.csdahua.cn/qtweb/news0/18900.html
            
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网