技术开发 频道

Sun推JavaFX,RIA之战进入白热化(2)



八、Java类、对象和自动数据绑定
 
    JavaFX不仅限于用户接口,它还可以定义类。在接下来的例子中,我们将建立个用于计算投资的计算器。这个用户接口允许用户输入最初资金、年汇报率,返还比率和投资时间来计算投资汇报率(界面如图8所示),源程序的代码可参考InvestmentCalculator.fx文件。



图8 投资计算器界面.

在这个程序中我们定义了一个InvestmentTool类。在InvestmentTool类中的每一个属性定义将使用如下的语法:
 
attribute AttributeName : AttributeType Cardinality;
 
    在JavaFX中,"methods"被定义为functions或operations。一个函数是一个只包含一系列变量表达式和返回表达式的方法。如下面代码定义了一个计算直角三角形斜边长度的函数:

function hypotenuseLength (side1, side2){
 var a = side1 * side1;
 var b = side2 * side2;
 var c = Math.sqrt(a+b);
 return c;
}

    一个操作,换句话说,就是可以包含任意数量表达式(包括变量声明、循环、条件等)。另外,也可以和JavaScript的操作和函数类似,可以先是一个类对象,但无需和类发生关系。

    InvestmentTool计算器的实例和var calculator = InvestmentTool{…}表达式有关。当JavaFX类没有显式声明构造方法时,这个实例将使用如上的符号创建。

    那么JavaFX类和objects如何被使用呢?如InvestmentTool实例如何被一个JavaFX用户接口使用呢?我们可以使用JavaFX强有力的自动数据绑定来处理这个问题,InvestmentTool的属性值可以和用户接口组件相关联。当对象变化时,组件值就跟着变化。在下面的代码中将演示如何进行数据绑定(注意下面代码的bind关键字的使用),更详细的代码可以查看InvestmentCalculator.fx。

Spinner {
       min: 0
 max: 1000000
 stepSize: 100
 value: bind calculator.contributionAnnual
 font: Font{faceName: "Arial", size: 18}
0
相关文章