`
Ivan_Pig
  • 浏览: 387157 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

学习JavaFX脚本语言----1,2

    博客分类:
  • RIA
阅读更多
    很遗憾,JavaFX目前没有发布Linux版本!我使用
http://deadlock.netbeans.org/hudson/job/JavaFX_NB_daily/
的NetBeans日构建的插件(11月24日停止更新了),运行JavaFX1.0的例子程序报错!郁闷,看来只能等Sun放出Linux版本的JavaFX了!还有,JavaFX目前的语法和之前的语法好像有了很大的区别!所以才想到翻译这个文档,计划一天翻译一到两节!
原文地址:http://java.sun.com/javafx/1/tutorials/core/index.html


Lesson 1: Getting Started with JavaFX Script

目录

- Step 1 : 下载并安装JDK
- Step 2 : 选择开发环境
- Step 3 : 下载并安装JavaFX编译器

Step 1: 下载并安装JDK

JavaFX脚本语言是建立在Java平台上的脚本语言,你的机器需要安装JDK5或者JDK6(JDK6在速度方面有提高)。如果你还没有安装,请在开始学习此教程前下载和安装JDK6或者JDK5。

Step 2: 选择开发环境

关于JavaFX开发环境,你有两个选择:使用IDE或者使用文本编辑工具。至于选择哪种开发环境,完全在于个人习惯。但是下面的总结能帮助你做出一个合理的选择。

普遍看法:(不翻译了,反正就是推荐使用IDE,也就是Netbeans了,目前就NetBean有此插件。要不你就用文本编辑工具吧!)

    *IDEs present the most commonly used functions as Graphical User Interface (GUI) elements, and offer many useful features, such as automatic code completion. An IDE also gives you immediate feedback on errors and highlights code so that it is easier to understand.

    * A text editor provides simplicity and familiarity. Experienced programmers often rely on their text editor of choice, preferring to work in that environment whenever possible (some editors, like vi, have a rich set of built-in keystroke commands that some programmers simply cannot live without!)

The officially supported IDE for the JavaFX Script programming language is NetBeans IDE 6.5. The NetBeans IDE website provides instructions for downloading, installing, and configuring the IDE.


Step 3: 下载并安装JavaFX编译器

你还需要下载和安装JavaFX脚本编译器和运行时环境。一个途径就是下载JavaFX SDK,它除了提供JavaFX编译器,运行时环境还提供了一些其他的工具。

另一个途径就是从openjfx项目的网站上下载最新的编译器二进制文件。编译器是用Java写的,安装方法就是解压缩下载的文件,然后将javafxc和javafx tools添加到你的路径下去。具体的方法在PlanetJFX WiKi上有完整介绍!

最后,如果你想冒险尝试(if you want to live on the bleeding edge)----你可以加入OpenJFX编译器项目,创建你自己的一个拷贝,然后自己编译源码。(如果你选择这个途径,你还需要Apache Ant1.7.0,较新版本的Subversion---写此文章时最新版本是1.5.4)。想获得更多关于从源码创建编译器的信息,请浏览Planet JFX Wiki.


Lesson 2: Writing Scripts

目录

- 编写一个简单的计算器
- 声明变量
- 方法的定义和执行
- 给方法传递参数
- 方法的返回值
- 使用命令行参数

-编写一个简单的计算器

开始之前,你要有一个calculator.fx文件,包含如下代码。

def numOne = 100;
def numTwo = 2;
var result;

add();
subtract();
multiply();
divide();

function add() {
     result = numOne + numTwo;
     println("{numOne} + {numTwo} = {result}");
}

function subtract() {
     result = numOne - numTwo;
     println("{numOne} - {numTwo} = {result}");
}

function multiply() {
     result = numOne * numTwo;
     println("{numOne} * {numTwo} = {result}");
}

function divide() {
     result = numOne / numTwo;
     println("{numOne} / {numTwo} = {result}");
}


JavaFX脚本语言是编译型语言,就是说所有的源代码在运行前都需要先转化为Java字节码!

下面的命令将会编译calculator脚本:

javafxc calculator.fx

编译完成后, 你会发现相应的Java字节码被生成,并且被放置到了叫做calculator.class的文件里面。你还会发现另一个文件calculator$Intf.class被创建。这个文件是被提供来运行应用的---你可以忽略它,但是不要删除。

现在你可以用下面的命令运行编译后的类了。

javafx calculator

输出:

100 + 2 = 102
100 - 2 = 98
100 * 2 = 200
100 / 2 = 50


这是一个很小的程序,但是它向你展现了JavaFX里面一些很重要的组成部分。学习这些部分是你掌握JavaFX的第一步。

Note:JavaFX语言不难掌握,但是由于你是第一次接触它,我们一次只介绍一部分的知识点以便你能更好的掌握它。我们的宗旨是方法的明了。我们会在后面的章节介绍更高级的用法。

-声明变量

让我们来仔细看一下calculator.fx这个例子---后面我们会扩展这个例子。

第一段代码定义了几个变量:

def numOne = 100;
def numTwo = 2;
var result;

变量可以由var或者def关键字来定义。 两者的区别是var定义的变量可能在程序的执行过程期间有新的值被赋给它,而def定义的变量会一直保留第一次被赋予的值!我们给numOne,numTwo变量赋了值,但没有给result变量赋初值,因为这个变量将会保存我们的计算结果。

变量名一般由字母和数字组成,且不能以数字开头!建议以小写字幕开头,如果变量包含不止一个单词,从第二个单词开始,大写每个单词的第一个字母,如上例所示(numOne)。

Note:你可能注意到了,我们并没有做特别的规定让变量去存储一个数字(对字符串或其他类型的数据也是一样的)。编译器足够的聪明,能够从变量所存储的内容判断出类型。这就是类型猜测.类型猜测使你的工作简单化,像编写脚本语言一样,因为你不需要再定义变量的类型了。


-方法的定义和执行

余下的源代码定义了一些方法,add,subtract,multiply和divide。

function add() {
     result = numOne + numTwo;
     println("{numOne} + {numTwo} = {result}");
}

function subtract() {
     result = numOne - numTwo;
     println("{numOne} - {numTwo} = {result}");
}

function multiply() {
     result = numOne * numTwo;
     println("{numOne} * {numTwo} = {result}");
}

function divide() {
     result = numOne / numTwo;
     println("{numOne} / {numTwo} = {result}");
}


方法是一段可执行的代码块,执行特定的任务!在我们的例子中,每个方法执行一个数学计算并打印结果!将执行的代码放置到方法中可以使你的程序更加的易读,易用和除错!方法体被大括号包围,方便辨认方法的开始和结束!

如果不调用方法,方法不会真正的执行!这使得你可以在你程序的任何地方去执行方法!不管方法的定义是在调用的前面还是后面,都没有关系!在我们的例子中,我们在方法定义前就执行了方法!

方法执行代码如下:

add();
subtract();
multiply();
divide();


-给方法传递参数

下面我们将修改calculator代码使其能接受参数!参数是你在执行方法时传递给方法的值!使用这种途径,我们的计算器能运算任意两个数的四则运算,而不是只能运算硬编码给numOne和numTwo的值。

var result;

add(100,10);
subtract(50,5);
multiply(25,4);
divide(500,2);

function add(argOne: Integer, argTwo: Integer) {
     result = argOne + argTwo;
     println("{argOne} + {argTwo} = {result}");
}

function subtract(argOne: Integer, argTwo: Integer) {
     result = argOne - argTwo;
     println("{argOne} - {argTwo} = {result}");
}

function multiply(argOne: Integer, argTwo: Integer) {
     result = argOne * argTwo;
     println("{argOne} * {argTwo} = {result}");
}

function divide(argOne: Integer, argTwo: Integer) {
     result = argOne / argTwo;
     println("{argOne} / {argTwo} = {result}");
}



现在的输出为:

100 + 10 = 110
50 - 5 = 45
25 * 4 = 100
500 / 2 = 250


在这一个版本里面我们移除了numOne和numTwo这两个变量,因为不再需要它们了!取而代之的是我们修改了方法的定义,需要传递两个参数给方法。每个参数都有名称,后面跟着一个冒号加类型。当方法接受多个参数的时候,参数之间用逗号隔开。

-方法的返回值

方法可能会有返回值。比如,add方法可以修改为返回计算结果,如下:

function add(argOne: Integer, argTwo: Integer) : Integer {
     result = argOne + argTwo;
     println("{argOne} + {argTwo} = {result}");
     return result;

}


add方法现在可以像这样运行:

var total;

total = add(1,300) + add(23,52);



如果没有返回值需要返回,默认返回Void。


-使用命令行参数

我们可以进一步的修改calculator程序来接受命令行参数。这可以使终端用户在运行时决定需要计算的数值。

var result;

function run(args : String[]) {

     // Convert Strings to Integers
     def numOne = java.lang.Integer.parseInt(args[0]);
     def numTwo = java.lang.Integer.parseInt(args[1]);

     // Invoke Functions 
     add(numOne,numTwo);
     subtract(numOne,numTwo);
     multiply(numOne,numTwo);
     divide(numOne,numTwo);
}

function add(argOne: Integer, argTwo: Integer) {
     result = argOne + argTwo;
     println("{argOne} + {argTwo} = {result}");
}

function subtract(argOne: Integer, argTwo: Integer) {
     result = argOne - argTwo;
     println("{argOne} - {argTwo} = {result}");
}

function multiply(argOne: Integer, argTwo: Integer) {
     result = argOne * argTwo;
     println("{argOne} * {argTwo} = {result}");
}

function divide(argOne: Integer, argTwo: Integer) {
     result = argOne / argTwo;
     println("{argOne} / {argTwo} = {result}");
}



这次修改新增了一些新的知识点,最值得注意的就是run()方法。不像其他的方法,run()是一个特殊的方法,是程序的入口点!run()方法会在args变量里面保存所有的命令行参数,以String Sequences的形式保存(Sequences是有序的对象链,很像其他编程语言里面的数组;在后面的章节将详细介绍)。

运行这段代码,现在你必须要设定第一个和第二个参数。

javafx calculator 100 50

输出:

100 + 50 = 150
100 - 50 = 50
100 * 50 = 5000
100 / 50 = 2

Note:在之前的所有版本里面,我们并没有提供run()方法。我们只是输入代码然后它就执行了。默认情况下,编译器会插入一个无参的run()方法,然后在里面放入要执行的代码!
   
我们重新定义了numOne和numTwo变量,这次是才run()方法内定义的,我们的计算functions需要数字类型的参数,但是命令行参数是字符串,我们在将命令行参数赋给方法前,必须要要将每个命令行参数从String转化为Integer。

// Convert Strings to Integers
def numOne = java.lang.Integer.parseInt(args[0]);
def numTwo = java.lang.Integer.parseInt(args[1]);


我们借助Java语言来完成这个转换。这个简单的脚本语言能直接使用Java语言而获得很强大的功能(Tapping into the existing Java ecosystem as needed brings tremendous power to this otherwise simple scripting language. )
16
0
分享到:
评论
6 楼 dehuai 2010-04-30  
富Internet应用,有中国自己的产品吗?
5 楼 soleares 2009-03-14  
thx your share!!!
4 楼 lovefly_zero 2008-12-22  
感谢楼主的努力,虽然并不看好JavaFX.
3 楼 hcx 2008-12-20  
感谢楼主分享!
2 楼 gml520 2008-12-07  
非常感谢您的工作。
1 楼 h819 2008-12-07  
好,期待楼主的继续工作

相关推荐

    学习JavaFX脚本语言--中文PDF版

    这个压缩包文件“学习JavaFX脚本语言_翻译_.pdf”显然是一个关于JavaFX编程的中文教程,对于想要深入理解JavaFX的人来说,这是一个宝贵的资源。 JavaFX最初是Sun Microsystems开发的,后来被Oracle收购并继续发展。...

    javafx-sdk-17.0.2-lts-windows-x64

    JavaFX SDK 17.0.2 LTS 是一个用于创建桌面和基于浏览器的富客户端应用程序的工具包,专为Windows x64平台设计。这个版本是长期支持(LTS)版本,意味着它将提供更长期的维护和支持,适合于那些需要稳定开发环境的...

    学习JavaFX脚本语言

    学习JavaFX脚本语言,你需要掌握如何声明和操作对象,以及如何利用它的图形和动画功能创建动态用户界面。随着对JavaFX深入的理解,你可以创建出交互性强、视觉效果丰富的应用程序。而要更进一步,还可以学习如何编写...

    深入学习javaFx脚本语言

    深入学习JavaFX脚本语言,意味着我们将探讨其语法、特性以及如何利用它来构建动态的应用程序。 JavaFX最初引入了一种名为JavaFX Script的专用脚本语言,但后来在JavaFX 2.0中,JavaFX Script被Java API所取代,使得...

    学习JavaFX1.2脚本语言

    1. **JavaFX脚本语言**:JavaFX Script是一种声明式语言,它与Java语法有所不同,更专注于UI设计。开发者可以通过简单的语句定义UI元素和它们的行为,减少了代码量并提高了可读性。例如,你可以直接用代码定义按钮、...

    JavaFX Script 脚本编程语言

    在开始学习 JavaFX Script 编程语言之前,需要在系统上安装 JDK 6 或 JDK 5,然后再继续学习本教程。 knowledge point 1: 安装 JDK 在学习 JavaFX Script 编程语言之前,需要在系统上安装 JDK 6 或 JDK 5。这是...

    javafx脚本语言中文学习文档

    javafx语言中文教程,内附代码,有助于学习理解!

    javafx使用指南-目录版.pdf

    1. JavaFX Script:JavaFX 的脚本语言,用于开发 JavaFX 应用程序。 2. JavaFX API:JavaFX 的应用程序编程接口,用于开发 JavaFX 应用程序。 3. JavaFX Graphics:JavaFX 的图形编程接口,用于开发 JavaFX 应用程序...

    javafx入门教程

    Lesson 1将指导您学习JavaFX脚本语言的基础知识,例如变量声明、数据类型、操作符等。 Step 1: 下载并安装JDK JavaFX脚本语言需要JDK 5或JDK 6支持,请下载并安装JDK 6或JDK 5。 Step 2: 选择开发环境 您可以...

    Learning the JavaFX Script Programming Language.pdf

    《深入学习JavaFX脚本编程语言》:现代GUI应用程序开发的高效工具 一、JavaFX脚本编程语言概述 JavaFX脚本编程语言是专为创建具有现代化图形用户界面(GUI)的应用程序而设计的一种高级编程语言。它以其声明式的...

    Javafx Script - Dynamic Java Scripting For Rich Internet-Client-Side Applications (Apress, 2007).pdf

    2. **动态性**:作为一种脚本语言,JavaFX Script具有动态语言的所有优点,如变量类型推断、自动内存管理等。 3. **跨平台**:JavaFX Script编写的程序可以运行在多个平台上,只需一次编写即可部署到不同的操作系统...

    JavaFX2.0基础教程.pdf

    Oracle宣布停止对JavaFX脚本语言的支持,并将JavaFX的部分API集成到Java标准库中,使得JavaFX成为开发跨平台富客户端应用的理想选择。 - **JavaFX2.0新特性**: - **API整合**:将原有的JavaFX脚本API集成到了Java...

    JavaFX-Script语言教程.doc

    JavaFX Script是Oracle公司推出的一种用于创建富互联网应用程序(RIA)的脚本语言,它专门设计用来构建桌面和Web上的图形用户界面。虽然JavaFX Script的流行度在JavaFX后来转向Java语言API后逐渐降低,但它依然为...

    JavaFX Script - Dynamic Java Scripting for Rich Internet-Client-Side Applications

    为了满足这些需求,Sun Microsystems 推出了 JavaFX Script,这是一种专为创建丰富的互联网客户端应用程序而设计的动态脚本语言。本文将基于提供的文档信息对 JavaFX Script 的核心概念、优势以及应用场景进行深入...

    JavaFX-Resizable-Draggable-Node

    - JavaFX应用程序可以使用Java、Kotlin、Scala等JVM语言编写,也可以用Scene Builder设计界面布局。 2. **JavaFX中的节点(Node)**: - 节点是JavaFX图形场景图的基本构建块,包括按钮、文本框、图像视图等。 -...

    JavaFX Script 语言教程(面向Swing 程序员).rar

    对于Swing程序员来说,学习JavaFX Script 可以拓宽他们的技能范围,为他们提供更现代的UI开发工具。Swing虽然功能强大,但在视觉效果和交互性上可能略显传统,而JavaFX Script 则提供了更先进的解决方案。 这个...

    JavaFX高级教程:JavaFX2.0的FXML语言(中文版)

    10. **使用脚本语言**:如果需要,可以通过绑定和表达式在FXML中使用Java脚本来增强功能。 11. **使用样式表**:应用CSS样式表,以实现自定义的视觉效果和主题。 通过以上步骤,我们将能够完全理解如何使用FXML来...

    javaFx script

    学习JavaFX Script的最佳起点是官方提供的教程,该教程详细介绍了JavaFX Script的核心概念和语言语法。通过这个教程,开发者可以逐步掌握JavaFX Script的基础知识,并进一步了解如何构建图形用户界面(GUI)应用程序...

    javaFX 入门教程

    1. **高生产力的脚本语言**:JavaFX脚本语言设计得易于学习且表达能力强,支持声明式的编程风格,使得开发者可以专注于应用程序逻辑而非底层实现细节。 2. **静态类型**:虽然JavaFX脚本语言采用了类似脚本语言的...

    JavaFX2.0基础教程(整合版)

    - **Oracle 接手**:Oracle 收购 Sun 后,在 2010 年 JavaOne 大会上宣布将停止对 JavaFX 脚本语言的支持,并将 JavaFX 的 API 导入 Java,这意味着 Java 开发者无需学习新的脚本语言即可利用 JavaFX 的功能。...

Global site tag (gtag.js) - Google Analytics