体验了一把JavaFX

22 篇文章 0 订阅

 体验了一把JavaFX

JavaOne放出来的新东西,出来也有段时间了,看了论坛和blog上的讨论,叫好、不看好的各占一半。今天就去https://openjfx.dev.java.net/ 下载了netbean插件,按照getting startted做了一些例子。总体来说,JavaFx仍然是在awt/swing的基础上的包装,只不过用一层薄薄的性感语法包装了一把,而且这语法与javascript等脚本语言基本一致,特别是声明性的编程语法与json非常相似。据sun声称要退出一个消费者版本的jre,大概5M-9M大小,消息参见《桌面java的缺陷:面向消费者的jre》,这个恐怕也是给JavaFx专门定制的吧。个人观点:没有什么令人激动的新鲜玩意,特别是布局方面仍然是麻烦的layout机制,对多媒体的支持还是比不上flash,优点在于与java服务端通信方面(因为都是java平台)可能比较有优势,另外就是消费者版本jre的推出是个好消息,jre实在太大了。

    说了这么多,看看Hello World怎么写的,实在与json太相似了:

import javafx.ui. * ;
Frame {
     title: 
" Hello World JavaFX "
     width: 
200
     height: 
200
     content: Label {
      text: 
" Hello World "
     }
     visible: 
true
}


    这是声明方式来创建一个Frame,Frame里面放个Label,Label上一句Hello World。也可以采用编程方式:

        var  win  =   new  Frame();
        win.title 
=   " Hello World JavaFX " ;
        win.width 
=   200 ;
        
var  label  =   new  Label();
        label.text 
=   " Hello World " ;
        win.content 
=  label;
        win.visible 
=   true ;


这语法与javascript有什么不同呢?
    再来看看事件处理,仍然遵循MVC模式,比如我们希望输入框的文字修改能同时修改窗体的title,首先定义一个Model:

        class  HelloWorldModel {
            attribute saying: String;
        }

        var model 
=  HelloWorldModel {
            saying: 
" Hello World "
        };


    把Model绑定到View上:
   

        var win  =  Frame {
            title: bind 
" {model.saying} JavaFX "
            width: 
200
            content: TextField {
                value: bind model.saying
            }
            visible: 
true
        };


TextFiled的value与model的saying操作进行了绑定,而Frame的title也绑定了model的saying方法,因此输入框的文字改变的话,也会反映到title上咯。"{model.saying} JavaFX"倒是类似ruby对字符串的处理方法了。这些例子代码完全来自 Getting Started With JavaFx script language,更多精彩内容请自己解读。题外话:netbean蛮好用的啊,在我的1G内存机器上跑的挺欢。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值