`
finch
  • 浏览: 9011 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

JavaFX入门

阅读更多
JavaFX入门教程

 

 

下载源代码


〖 作者:翻译:Caoer 〗

     什么是JavaFX?SUN在2007年春天发布了一个叫JavaFX新框架。这是一个泛泛的名字,因为JavaFX主要包含Script and Mobile两个组件,在将来SUN将开发更多的组件。

     JavaFX 的核心是 JavaFX 脚本,是一个声明式脚本语言。尽管同Java代码非常不同,但是同Java类具有很高的交互度。 JavaFX 中的很多类主要为了更容易实现Swing和Java2D而设计的。使用 JavaFX 脚本,您能很容易的为文本和图形开发GUI接口、动画和非常COOL的效果。并且,您能将Java和HTML代码包装到 JavaFX 脚本中。

    第二个组件- JavaFX Mobile,是为移动设备开发Java应用的平台。它最终会成为开发 JavaFX 脚本的平台但是现在同这篇文章实用的技术还很不兼容。

<script type="text/javascript"></script><script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script>
JavaFX 应用的一些例子

    在开始学习一门新的语言前,让我们先看一下JavaFX代码的一些例子。JavaFX 官方站点具有大量的JavaFX 实例。请点击JavaFX Script 2D Graphics Tutorial下载该实例. 下载完成以后,双击tutorial.jnlp 文件即可运行。几秒过后,你应该能够看到如图一的JavaFX实例运行场景(若没有出现该图片,你必须为.jnlp扩展名重新配置Java Web Start)。 

图一、运行 tutorial.jnlp tutorial

    花些时间看一看这些例子和源代码。仅仅使用有限的几行JavaFX代码就能得到很多有趣的效果。如果你对于JavaFX的应用还是感到摸不着头脑,看一看下面的两个demo。它们是StudioMoto Tesla Motors 站点的部分重新实现。您可以从OpenJFX 项目站点下载OpenJFX 脚本Studiomoto Demo Tesla Demo。它们需要Java Web Start 才能运行,但是也取决于你的机器配置它们可能自动运行,或者你必须找到和运行已经下载的.jnlp文件。

下载安装JavaFX

  如果你对于学习开发JavaFX应用程序,您应该了解至少使用JavaFX三个方法。同时了解JavaFX应用程序不是基于浏览器的也很重要。最简单最快捷的方法是基于叫JavaFXPad轻量级的工具。使用该工具的主要优势是你总能立即看到你在编辑器里所作更改的效果。你能从JavaFX项目网站下载到该工具( JavaFXPad )。并且运行它需要Java Web Start (如图二)。

 
图二、运行JavaFXPad编辑器

     使用JavaFX的另一种方式是使用JavaFX脚本NetBeans 5.5插件或者Eclipse 3.2插件(需要下载和安装NetBeans 5.5 或者 Eclipse 3.2.2 以上集成开发工具 )。若您已经使用 NetBeans 5.5开始你的JavaFX之旅,OpenJFX项目网站的对于NetBean开发JavaFX的说明将会给予你帮助。 相似的如果您使用基于EclipseJavaFX插件,您可以去JavaFXEclipse插件。注意这篇文章中的所有例子已经在NetBeans5.5JavaFX插件中测试过,但是应该能够使用其他方法运行。

使用NetBeans 5.5下的JavaFX插件开发Hello World 程序

每当开始学习一门新的语言时,我们必定要写Hello World 小程序:

源码列表1

import javafx.ui.*;

import java.lang.System;

Frame {

centerOnScreen: true

visible: true

height: 50

width: 350

title: "HelloWorld application..."

background: yellow

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

content: Label {

text: "Hello World"

}

}

 在

1.                   启动NetBeans 5.5.

2.                   从主菜单选择File -> New Project.

3.                   在新项目窗口,选择目录常规目录和 Java 应用项目(点击下一步).

4.                   在新的Java应用程序窗口,在项目名文本框敲入 "FXExample".

5.                   在相同窗口,用浏览按钮选择项目的目录.

6.                   取消 "Set as main project" "Create main class" 复选框 (点击完成).

7.                   右击FXExample -> Source Packages 和选择 New -> File/Folder.

8.                   在新的文件窗口,选择另一个目录和JavaFX文件类型(点击下一步).

9.                   在新的JavaFX文件窗口,敲入"HelloWorld" 作为文件名和"src"作为目录(点击完成).

10.               拷贝源码列表1 HelloWorld.fx.

11.               右击FXExample 项目选择项目属性.

12.               在项目FXExample属性对话框 ,选择从目录面板运行节点.

13.               在参数文本框敲入 "Hello World" (点击完成).

14.               右击FXExample 项目选择运行项目选项.

如果一切良好,你应该看到一个窗体如图三:


图三、 NetBeans 5.5中运行 Hello World 应用程序

现在你拥有了开发和运行任何JavaFX应用程序的IDE软件支持.

JavaFX 语法

    在正式开始学习JavaFX,让我们浏览一遍该语言的语法要点。如果你非常熟悉Java语言,这些语法的大多数会让你感到非常熟悉,但是有一些会相当不一样。

JavaFX 原始类型

    JavaFX 支持原始类型:String (对应于 java.lang.String), Boolean (对应于 java.lang.Boolean), Number (对应于 java.lang.Number) Integer (对应于 byte,short,int,long,BigInteger).

JavaFX 变量

一个JavaFX变量使用var关键字声明。看下面的例子:

 

 

操作符

 

众所周知的Java操作符&&, || ! JavaFX中采用下面的形式:

·                     Java: && JavaFX: and
·                     Java: ||  JavaFX: or

·                     Java: !    JavaFX: not

JavaFX 方法

JavaFX 支持这些方法. 具有参数、变量声明和返回值的方法举例:

function taxes(x) { var t:Number = (19.0/100.0)*x; return t; }

JavaFX if 语句


JavaFX中,你你能通过使用if语句使用条件判断。

if (条件) { //动作 } else if (条件) { //动作 } else { //动作 }

JavaFX while 语句

这个 while 语句同在Java中的while语句相似。 while (条件) { //动作}

JavaFX for 语句

for 语句用于循环和间隔(间隔使用方括号[] .. 符号表示).

//i 将取值: 0, 1, 2, 3, 4, 5象在 (i in [0..5]) { //伴随 i的动作 }代码块中

JavaFX 过程

JavaFX 过程以operation 关键字为标志。一个简单的例子:

 

 

 

   JavaFX 类使用class关键字. 一个 JavaFX 类能够使用extends 关键字继承多个类使用逗号分割这些类的名字。在花括号中间你可以放属性、方法和过程,例如下面的例子:

 

 

class Order {

attribute order_nr: String;

attribute ordertype: Order inverse Order.products;

attribute products: Order* inverse Order.ordertype;

function getOrderNr(): String;

operation addOrder(order: Order);

}

     注意属性使用attribute关键字声明,方法体和过程不在类体中,它们单元定义在类声明以后,在下文你很快就能看到。 inverse 子句是一个可选项 ,它表示一种同在类中另一个属性的双向关系。在这个案例中JavaFX将自动完成更新(插入、替代和删除)你能在Java.net上找到更完整的文档

熟悉JavaFX

    在本小节,您将会看到一系列的小例子,这些例子覆盖JavaFX的各种特性和功能。主要目的是让你熟悉JavaFX代码和JavaFX应用程序的逻辑。第二个目标是当你需要开发仅仅需要几行代码就会有非常酷的GUI,动画和好的效果时候使你确信JavaFX值得好好研究一下。所有列出的例子将介绍关于JavaFX的技巧。每一个例子只使用很少的描述处理,所以不要想找到大量的注释。所有这些可访问的例子你都是你自己就能运行的,所以让我们开始吧。当我们需要使用System.out.println 打印属性值时候,你可以把它的名字放进含有引用的字符串,象源码列表2中所示的那样。

源码列表2

//带有应用文本的表达式

import java.lang.System;
var mynumber:Number = 10;
System.out.println("数字是: {mynumber}");

 结果

·                     ?: 可选的(可能为 null)

·                     +: 1或多个

·                     *: 0或多个

源码列表3

//变量计数

import java.lang.System;
var mynumbers:Number* = [1,2,7];
System.out.println("数字是: {mynumbers}");

 结果

源码列表 4

//变量类型是可选的

import java.lang.System; 
var days = ["Monday,","Friday,","Sunday"]; 
System.out.println("你必须工作: {days}");

 

结果: 你必须工作: Monday, Friday, Sunday
你可以使用sizeof 操作符得到一个数组的大小:

源码列表 5

//得到一个数组的大小

import java.lang.System;
var lotto = [21,30,11,40,5,6];
System.out.println("数组大小:{sizeof lotto}");

 结果

您能使用 [] 操作符得到满足指定条件的子数组。条件放在 [] 中作为布尔判断 。这个与XPath 谓词相似.

源码列表 6

//使用[] 操作符 -与 XPath相似

import java.lang.System;
var mynumbers = [1,2,7,3,30,15,14,6,4];
var numbers = mynumbers[n|n < 10]; 
System.out.println("小于10的数字为: {numbers}");

 结果

源码列表 7

//返回指定序数位置的数组中的元素

import java.lang.System;

var mynumbers = [1,2,7,3,30,15,14,6,4]; 
var number_four = mynumbers[indexof . == 4]; 
System.out.println("数字4:{number_four}");

 结果

·                     as first: 在第一个位置插入

·                     as last:在最后一个位置(默认)插入

·                     before: 在前一个位置插入

·                     after:在下一个位置插入

你可以使用 delete 语句从一个数组中删除一个元素.

源码列表8

//插入和删除语句
import java.lang.System;
var mynumbers = [1,2,7]; 
System.out.println("Before inserting anything: {mynumbers}");
insert 10 into mynumbers;
System.out.println("After inserting at the end the \"10\" value:{mynumbers}");
insert [8,6,90] as first into mynumbers; 
System.out.println("After inserting at the first positions the \"8,6,90\" values:{mynumbers}");
insert 122 as last into mynumbers;
System.out.println("After inserting at the end the \"122\" value:{mynumbers}");
insert 78 before mynumbers[3];
insert 11 after mynumbers[3];
System.out.println("After inserting the \"78\" and \"11\" values before/after the 3rd element:{mynumbers}");
delete mynumbers[. == 122];
System.out.println("After deleting:{mynumbers}");

 结果

JavaFX中的一个非常好的功能是list。这个功能使用 select foreach 操作符实现。这有两个例子(一个使用 select 和使用 foreach) 得到指定间隔的奇数。

源码列表9

//JavaFX中的 select 和 foreach 操作符

import java.lang.System; 
function odd(p:Number) 
{ return select i from i in [1.0 ..p]
 where (i%2 == 0.0); 
}

var result = odd(10.0); 
System.out.println("Odd numbers:{result}");

 结果

源码列表10 ( 源码列表 9相同, 但是有 foreach)

//JavaFX中的select 和 foreach 操作符

import java.lang.System; 
function odd(p:Number) { 
       return foreach (i in [1.0 ..p] 
     where (i%2 == 0.0)) i; 
     } 
var result = odd(10.0);
System.out.println("Odd numbers:{result}");

 这个例子显示了

源码列表11

//JavaFX中的 select 和 foreach 操作符

import java.lang.*;
import javafx.ui.*; 
import javafx.ui.canvas.*;
Frame { 
centerOnScreen: true 
visible: true 
height: 500 
width: 500 
title: "Foreach demo..." 
onClose: operation() {
System.exit(0);
} 
content: ScrollPane { 
background: white 
view: Canvas {
 content: bind 
foreach (i in [1..8], j in [1..8]) 
Rect { x: i*30 y: j*30 width:30 height:30 fill: Color {red: (100+i) green: (100+j) blue: (100+(i*j))
} 
stroke:white 
strokeWidth:1 } }

}

}

  


图四. 运行源码列表 11

使用双箭头括号引用为JavaFX关键字的变量名或者属性名,如下所示。

源码列表 12

//标志符引用

import java.lang.System;

for (<<for>> in [0..3]) {

System.out.println("for = {<<for>>}");

}

 结果

当你需要开发Swing接口时,JavaFX 是一个伟大的工具,因为 JavaFX 考虑了非常多用来降低代码量和同javax.swing.*并存友好。在上一节(使用NetBeans5.5中的JavaFX插件测试Hello World应用程序),你看到了创建一个窗体是如何容易。这有两个更好的例子:创建按钮和文本框。

源码列表 13

import javafx.ui.*;

import java.lang.System;

Frame{

content: Button { text: "Exit" action: operation() { System.exit(0); } }

visible: true

}

  


图五. 运行源码 13

源码列表14

import javafx.ui.*;

Frame {

content: GroupPanel { var myRow = Row { alignment: BASELINE }

var label_col = Column { alignment: TRAILING }

var field_col = Column { alignment: LEADING }

rows: [myRow] columns: [label_col, field_col]

content: [SimpleLabel { row: myRow column: label_col text: "Type your text here:" }, TextField { row: myRow column: field_col columns: 50 }] }

visible: true

};

  


图六. 运行源码 14

Java.net 也有使用JavaFx创建 Swing接口的教程。

分享到:
评论

相关推荐

    javafx入门教程

    javaeye上面的以为热心网友发布的javafx入门教程 是翻译sun的官方教程 所以在这里首先要感谢这位热心的通道 我在此只是为了扩大传播 得点分 呵呵

    JAVAFX入门(英文版)

    javafx开发入门教程,英文版,个人感觉不错。

    javaFx入门演示示例程序操作图片

    javaFx入门演示示例程序操作图片

    JavaFx 入门文档,JavaFx实例

    最近公司需要这技术,自己官网研究,案例,心得。

    JavaFX快速入门Demo

    JavaFX快速入门Demo,快速搭建自己的UI界面,快速熟悉JAVAFX开发。

    javaFX 入门教程

    javaFX 入门 教程,sun 的力作。面向对象,编程很方便简单,以后的桌面的编程新秀,前景超广阔,学会了吃碗好饭呢!

    javaFX入门教程(英文)

    这是javaFX Script Programming language 入门的基本语法与简易教程,是从官网上下载下来的pdf,所以是英文的,有兴趣的朋友可以下来看看,随便提高一下自己的英语水平.&lt;注&gt;这是.7z压缩文件,需要7-zip进行解压才行...

    JavaFx入门教程

    比较简单的JavaFx入门教程,对于程度低一点的同学有用

    javafx入门

    javafx是编写的界面比常用的swing awt好看,得安装jdk8和最新的eclipse。

    Java学习指南19 JavaFX入门

    JavaFX教程分为2篇:JavaFX入门篇 , JavaFX高级篇。 二、主要内容? 本篇介绍JavaFX的基本技术,至少包括以下方法:* 基本控件的使用 Label Button ImageView等* 基本布局的使用 BorderPane, HBox, VBox等*?常用形状...

    getting-started:OpenCV和JavaFX入门

    OpenCV和JavaFX入门 计算机视觉课程 在Eclipse(Neon)中创建的两个简单项目,分别是库(版本3.x)和JavaFX(版本2或更高版本)入门。 请注意,这两个项目都是出于教学目的而实现的Eclipse项目。 在使用它们之前...

    javaFX基础教程及详实实例

    javaFX基础教程及各个组件用法案例和详细文档,非常适合初学者,是学习javafx的非常好的资源,价值13分的资源,推荐下载。

    javaFX入门感受

    NULL 博文链接:https://ganting.iteye.com/blog/335155

    Essential JavaFX (含源码)

    JavaFX入门书籍。书中内容按照培训技术人员的思路设计,读者可以根据该书的章节快速有效地学习JavaFX编程语言。

    JavaFX Script 脚本编程语言

    JavaFX Script 脚本编程语言是java多媒体技术方面的应用,设计javaFX入门编程

    JavaFX 8 Introduction by Example - 2nd Edition

    JavaFX 8 Introduction by Example - 2nd Edition 介绍了Javafx基础知识、Layout、控件、画图以及在链接Arduino、草莓派等嵌入式设备,是一本很好的Javafx入门书

    JavaFx2.0入门指南

    该文档的内容来自Oracle的官网,多了中英文对照。 如果你希望以JavaFx快速开发出具有丰富的用户体验的应用,那么该手册正是为你而在。

    javafx 2.0 布局入门

    javafx2.0最新最快的资料! javafx2.0最新最快的资料! javafx2.0最新最快的资料! javafx2.0最新最快的资料!

    JavaFX Script 入门教程

    将Sun的官方教程整理成PDF文件,方便查看

    FX入门手册

    JavaFX入门手册

Global site tag (gtag.js) - Google Analytics