JavaFX脚本语言入门(1)——语法概要

本文介绍了JavaFX脚本的基本语法,包括声明语法、静态类型、绑定、替换触发器和时间间隔支持。通过实例展示了如何声明Stage、定义变量绑定、函数绑定以及替换触发器的使用,并解释了时间间隔的支持。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作者:郝春利

转贴请注明出处:http://blog.youkuaiyun.com/froole

 

JavaFX是SUN为Java程序员简化GUI开发而推出的一款新的脚本语言。他不但支持目前流行的RIA概念,而且完全打破了传统的基于Java的GUI开发的概念。使得基于Java的GUI开发中的UI和逻辑处理更容易分离。
JavaFX的好处这里不费太多口舌,笔者鉴于JavaFX的中文学习资料还比较少,在此把自己的学习JavaFX脚本语言的笔记公开。
以演示代码的形式,对JavaFX脚本语言的代码作逐一解说。
针对于文章内容不明白的地方,可以留言提问。
关于环境搭建
编译、执行JavaFX需要下载JavaFX SDK。读者也可以根据自己的喜好在NetBeans或者Eclipse等IDE上安装插件。
下载地址:
使用JavaFX SDK的读者,编译、执行等命令的使用方法可以参考官方文档。
javafxc和javafx命令的使用方法类似于javac和java命令,本文将不再做具体说明:
  1. JavaFX脚本的语法特征
    • 目标指向
    • 声明语法
    • 静态型
    • 绑定
    • 替换触发器
    • 时间间隔支持
  2. 声明语法
    声明Stage目标举例:
    Stage {
            title: "Hello"
            width: 160
            height: 80

            onClose: function() {
                    System.exit(0);
            }

            scene: Scene {
                    content: SwingLabel {
                            font: Font {
                                    size: 24
                            }
                            text: "Hello, World!"
                    }
            }
    }

  3. 静态型定义
    整数型定义举例:
    var number: Integer;
    var number = 10;

  4. 绑定
    提示:println相当于java中的System.out.pringln
    1. 变量间绑定
      var x = 10;
      var y = bind x;

      println("Y: {y}");

      x = 20;

      println("Y: {y}");
      输出结果:
      Y: 10
      Y: 20:

    2. 变量计算结果绑定
      var x = 10;
      var y = bind x * 2;

      println("Y: {y}");

      x = 20;

      println("Y: {y}");
      输出结果:
      Y: 20
      Y: 40
    3. 多个变量绑定
      var x = 10;
      var y = 5;
      var z = bind x + y;

      println("Z: {z}");

      x = 20;

      println("Z: {z}");

      y = 10;

      println("Z: {z}");
      输出结果:
      Z: 15
      Z: 25
      Z: 30
    4. 函数绑定
      bound function add(a: Integer, b: Integer): Integer {
              return a + b;
      }

      var x = 10;
      var y = 5;
      var z = bind add(x, y);

      println("Z: {z}");

      x = 20;

      println("Z: {z}");

      y = 10;

      println("Z: {z}");
      输出结果:
      Z: 15
      Z: 25
      Z: 30
    5. 双方向绑定
      var x = 10;
      var y = bind x with inverse;

      println("X: {x} Y: {y}");

      x = 20;

      println("X: {x} Y: {y}");

      y = 30;

      println("X: {x} Y: {y}");
      输出结果:
      X: 10 Y: 10
      X: 20 Y: 20
      X: 30 Y: 30
  5. 替换触发器
    1. 空值替换
      var value: String on replace oldValue {
               println("/nValue has changed!");
               println("Old Value: {oldValue}");
               println("New Value: {value}");
      };

      value = "JavaFX";
      value = "JavaFX Script";
      输出结果:
      Value has changed!
      Old Value:
      New Value:

      Value has changed!
      Old Value:
      New Value: JavaFX

      Value has changed!
      Old Value: JavaFX
      New Value: JavaFX Script
    2. 初始值替换
      var value: String = "Java" on replace oldValue {
               println("/nValue has changed!");
               println("Old Value: {oldValue}");
               println("New Value: {value}");
      };

      value = "JavaFX";
      value = "JavaFX Script";
      输出结果:
      Value has changed!
      Old Value:
      New Value: Java

      Value has changed!
      Old Value: Java
      New Value: JavaFX

      Value has changed!
      Old Value: JavaFX
      New Value: JavaFX Script
  6. 时间间隔支持
    var duration1: Duration = 10ms; // 10毫秒
    var duration2: Duration = 1s; // 1秒
    var duration3: Duration = 1m; // 1分

    println("{duration1} * 100 == {duration2}? {duration1* 100 == duration2}");
    输出结果:
    10ms * 100 == 1000ms? true

待续
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script>

转贴请注明出处:http://blog.youkuaiyun.com/froole

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值