您好GroovyFX

GroovyFX汇集了我最喜欢的两件事: GroovyJavaFXGroovyFX项目主页面将GroovyFX描述为“ [为JavaFX 2.0提供Groovy绑定”。 该页面上进一步描述了GroovyFX:

GroovyFX是一个API,它使在Groovy中使用JavaFX变得更加简单和自然。 GroovyFX专注于利用Groovy Builder模式的功能来使JavaFX开发比Java中的开发更容易,更简洁。 GroovyFX还利用Groovy强大的DSL功能和AST转换来消除样板,使GroovyFX代码更易于编写,更重要的是,更易于阅读。
刚刚引用的GroovyFX主页包括一个“ Hello World”示例。 在本文中,我将使用GroovyFX看一个更简单的“ Hello World”示例。 之后,我来看一个使用GroovyFX绘制饼图的更加复杂的示例。 这两个例子都是我打算在下周的RMOUG 培训日 2013演讲中展示的示例(“ 使用JavaFX和Groovy绘制Oracle数据库数据 ”)。

一个简单的GroovyFX Hello World! 下一个代码清单中显示了示例。

import groovyx.javafx.GroovyFX
import groovyx.javafx.SceneGraphBuilder
import javafx.stage.StageStyle
import javafx.stage.Stage

GroovyFX.start
{
   stage(title: 'RMOUG Training Days 2013',
         width: 300, height: 100,
         show: true)
   {
      scene
      {
         stackPane
         {
            text('Hello GroovyFX!', x: 50, y: 40)
         }
      }
   }
}

运行上面的脚本将导致以下输出:

代码和屏幕快照显示了GroovyFX的简洁文本如何使您仅用几行代码就可以轻松地指定功能全面的JavaFX图形应用程序。

下一个代码清单显示了一个稍微复杂一些的示例,这些示例生成一个JavaFX Pie Chart 。 这里没有显示数据库访问代码,但是可以使用JDBC或Groovy SQL轻松完成。

import rmoug.td2013.dustin.examples.ChartMaker
import rmoug.td2013.dustin.examples.DbAccess
import groovyx.javafx.GroovyFX
import groovyx.javafx.SceneGraphBuilder
import javafx.stage.StageStyle
import javafx.stage.Stage

def databaseAccess = DbAccess.newInstance()

GroovyFX.start
{
   stage(title: 'Employees Per Department',
         width: 800, height: 500,
         show: true)
   {
      scene
      {
         stackPane
         {
            pieChart(title: 'Number of Employees per Department',
                     data: ChartMaker.createPieChartDataForNumberEmployeesPerDepartment(
                        databaseAccess.getNumberOfEmployeesPerDepartmentName()))
         }
      }
   }
}

上面的GroovyFX代码导致以下屏幕快照。

上面显示的简单的GroovyFX代码将Groovy与JavaFX结合在一起,以Oracle hr示例模式中每个部门的雇员数量的饼图表示形式。

下一个代码示例指示不使用GroovyFX的JavaFX应用程序的大致等效源代码。

package rmoug.td2013.dustin.examples;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.chart.PieChart;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class EmployeesPerDepartmentPieChart extends Application
{
   final DbAccess databaseAccess = DbAccess.newInstance();

   @Override
   public void start(final Stage stage) throws Exception
   {
      final PieChart pieChart =
         new PieChart(
            ChartMaker.createPieChartDataForNumberEmployeesPerDepartment(
               this.databaseAccess.getNumberOfEmployeesPerDepartmentName()));
      pieChart.setTitle('Number of Employees per Department');
      stage.setTitle('Employees Per Department');
      final StackPane root = new StackPane();
      root.getChildren().add(pieChart);
      stage.setScene(new Scene(root, 800 ,500));
      stage.show();
   }

   public static void main(final String[] arguments)
   {
      launch(arguments);
   }
}

可以将直接JavaFX示例的代码与GroovyFX示例进行比较,以查看GroovyFX语法比纯JavaFX代码更简洁(这是基于Groovy的预期),并且可以说比可读JavaFX代码更具可读性(尽管我认为JavaFX代码是本身具有相当的可读性)。 比较这两个代码示例还有助于了解GroovyFX如何使用JavaFX API用户熟知的属性名称。 我是Groovy和JavaFX的粉丝,而GroovyFX将它们融合在一起。

参考:来自我们的JCG合作伙伴 Dustin Marx的Hello GroovyFX,来自Inspired by Actual Events博客。

翻译自: https://www.javacodegeeks.com/2013/02/hello-groovyfx.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值