Just Java IT

西门町学士关于Java的随便一说而已……

走进JavaFX-(1)

/**
写这篇文章之前我先google了一下JavaFX的接受度,结果一篇文章跳进我的视线:(2007年8月)Michael Urban写的:为什么没人对JavaFX感兴趣?(原文:JavaFX: How Much Interest Is there?)。国外尚且如此,国内FX的环境就可想而知了。看来为了继续推广JavaFX,Sun还需更多的工作去做。文章在最后说:我们作为Java族的一员是否该为增加JavaFX的兴趣度而做点什么呢?呵呵,应该的啦,所以就准备写写JavaFX的文章了。
原创:西门町学士
*/
JavaFX出来已经很长一段时间了。一直在计划跟进,可是因为比较懒,现在才慢慢地学习。这里就暂做做学习总结的地方吧。
虽 然是总结,我还是打算写详细一点。本来我对JavaFX了解也不是很多,有的东西还要在网上查证了才能写(比较JavaFX是如何诞生,如何从F3变成 JavaFX的)。今天要写的主要是:1、JavaFX的前世今生;(了解了它的历史也就了解了它是什么,它的发展方向,呵呵)2、如何拥有 JavaFX;(知道从哪里去下载开发工具,如何配置它)3、Hello JavaFX World(当然,一个经典的Hello World是不能少的)
1、前世今生
如果你抱有太高的期望,希望在这里把JavaFX弄得清清楚楚,恐怕你要失望了。说实话,我也不清楚。甚至有人建议我从Applet开始讲,Oh NO!!
这 里,我不准备讲DSL,也不打算讲Swing。我能想到的开头就是:一个叫Chris Oliver的家伙,觉得用Java语言(以及差不多的语言,包括VCVBDelphiC#)做GUI开发太蹩脚了。他觉得开发GUI应该是采用声明式的 语言(比如:上帝说,要有光。于是有了光),而且还非常英明地放弃了当时(以及现在)流行的XML方式(MS和Mozilla都走了这条道),于是,他开 发了F3。为什么叫F3呢,因为他当时想的是Form Follows Function,3个F。从名字可以看出,目标就是Form,说白了就是GUI。它的语法很符合GUI的本质(而且如果你碰巧还接触过VRML的话,你 会觉得非常习惯)。由于当今的世界是DSL大行其道的世界,于是F3得到的关注越来越多,到了2007年的JavaOne上,Sun正式宣布将F3整编成 Java大家族的一员大将,并改名叫做JavaFX。(想知道更多可以去Chris在Sun的blog
2、如何拥有
首先保证你有Java SE在你的电脑上,如果你不知道什么是JDK,让你看到这里是我的错。
JavaFX的大本营是java.net,具体位置是https://openjfx.dev.java.net/。Sun还另开了一个javafx.com,用来推介JavaFX。(有点类似于java.net和java.com的作用)。
最 开始的JavaFX是解释性执行的,用文本编辑器写好代码后就可以直接运行。为了提高执行效率,现在又开发了编译器,用于把JavaFX代码编译成 bytecode,即class文件。这个class文件和用jdk编译的Java得到的class是一样的。当然,它的运行是需要JavaFX库的支持 的。估计今后的JavaFX都是采用编译后运行。
到大本营后按页面的链接去下载最新的JavaFX。目前的版本是javafxc编译器的Milestone 3,地址是:http://openjfx.java.sun.com/builds/javafxc-M3/。下载回来后直接解压缩就OK了。这里我们解压缩释放在D:\openjfx目录下。现在你就拥有JavaFX的全部了:编译器、运行时库、示例Demo、帮助文档等等。
另 外,为了方便开发,我们还有另外一种获取JavaFX的方式,通过IDE的JavaFX plugin。同样,在java.net的openjfx项目上也有很详细的说明。可根据个人的习惯选择NetBeans或是Eclipse等。我偏爱用 NetBeans,因此后面有很多例子将会在NetBeans下开发的。当然,原理都是一样的。
3、Hello FX World
记住两点:1、大小写敏感;2、包跟Java中是一样的,但对文件名不要求,后缀名建议用fx。(不像Java中文件名是类名)
我们的第一个JavaFX程序:

package tmp;

import javafx.ui.*;
import javafx.ui.canvas.*;

/**
 * @author a1
 */

// place your code here
Frame {
    title: "Hello World"
    width: 300
    height: 100
    background: Color.ORANGE
    visible: true
    content:
    FlowPanel {
        content:Button {
            text: "Click!"
            action: function():Void {
                MessageDialog {
                    title: "Hello JavaFX"
                    message: "Have fun!\nThis is your first JavaFX app!"
                    visible: true
                }
            }
        }
    }
}


保存在D:\tmp\HelloFX.fx。
打开命令行,进入D:\tmp,运行:D:\openjfx\bin\javafxc HelloFX.fx,如果你没有写错的话,应该成功编译。
然后退回D:\(因为tmp是我们要用的package),运行:D:\openjfx\bin\javafx tmp.HelloFX,程序就成功运行了。结果如图:

基本步骤讲到这里,以后就不再重复。具体的代码一目了然,我也就不啰嗦了。

posted on 2008-07-18 11:12 西门町学士 阅读(1712) 评论(6)  编辑  收藏 所属分类: Java

Feedback

# re: 走进JavaFX-(1) 2008-07-18 11:55 如坐春风

有没有复杂程序的展示?  回复  更多评论   

# re: 走进JavaFX-(1) 2008-07-18 12:38 Classicning

background: Color.ORANGE
???  回复  更多评论   

# re: 走进JavaFX-(1) 2008-07-21 15:19 西门町学士

@如坐春风
后面一定show一个比较复杂点的UI  回复  更多评论   

# re: 走进JavaFX-(1) 2008-07-21 15:26 西门町学士

@Classicning
本来是想把背景色设为橙色,可是上面又加了一个FlowPanel,把颜色挡住了。
可以把FlowPanel的背景色设一下,比如:
FlowPanel {
background: Color.ORANGE
content:Button {  回复  更多评论   

# re: 走进JavaFX-(1) 2010-01-12 16:31 伊人

劳驾问下 现在javafx的最好的IDE是什么呢?除了NetBeans  回复  更多评论   

# re: 走进JavaFX-(1) 2010-01-13 10:29 西门町学士

@伊人
呵呵,如果做GUI(包括Swing、javaFX)以及JavaME,最好的IDE依然是NetBeans  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航: