Java FX swt_DOC-13-08 JavaFX与SWT的协作性

DOC-13-08 JavaFX与SWT的协作性

本章展示了如何在SWT应用程序中加入一个JavaFX场景图,以及如何使SWT和JavaFX控件协作。

介绍

如果你开发SWT应用程序,你知道SWT使用本地操作系统的控件,而且并不能简单的配置来使用高级GUI特性,比如动画。在SWT中集成JavaFX可以很快的让你的SWT应用程序变炫。你只需要javafx.embed.swt包中的FXCanvas类。javafx.embed.swt包可以在jfxswt.jar中找到,位于JDK_Home/jre/lib/路径中。FXCanvas是一个常规的SWT画布,只要是SWT画布能出现的地方,它都可以用。

在本章中,你将看到如何创建一个交互式的SWT按钮和JavaFX按钮,如图8-1所示。

图8-1 SWT按钮在左,JavaFX按钮在右

e88827b0f48c450d9fae179525884dac.png

当用户点击任何一个按钮时,另一个按钮上的文字会改变,如图8-2和图8-3所示。本例展示了SWT代码和JavaFX代码是如何协作的。

图8-2点击SWT按钮改变JavaFX按钮标签

9547ff8ee545ac5c713d6159b7a13f3d.png

图8-3点击JavaFX按钮改变SWT按钮标签

e825296a538c75c1e6d0675982a8c396.png

在SWT组件中添加JavaFX内容

在JavaFX中,创建和操作JavaFX类的Java代码在JavaFX用户线程进程中运行。在SWT中,创建和操作SWT小部件的代码在事件循环线程中运行。当在SWT中嵌入JavaFX时,这两个线程是同一个。这意味着在一个工具中调用另一个工具的方法时没有任何限制。

例8-1展示了创建如图8-1所示的SWT按钮和JavaFX按钮的代码。如代码中所示,你使用FXCanvas类的setScene()方法在一个FXCanvas中设置了JavaFX内容。为了强制SWT布局包含新JavaFX内容的画布,首先要调整JavaFX内容的大小。为了调整大小,获取包含JavaFX内容的JavaFX窗口并调用sizeToScene()。当JavaFX被嵌入到SWT时,会为FXCanvas设置一个新的预设大小,使SWT可以重新调整嵌入的JFX内容大小,正如调整其它SWT控件的大小一样。

JavaFX根据一个分层的场景图来构造内容,然后放入scene中。例8-1中的代码将JavaFX按钮放入了一个如图8-4所示的场景图中,在代码样例的备注中有描述。

图8-4在SWT应用程序中的JavaFX场景图

c2a37100a9d4c9165dceb4aaeebdb154.png

例8-1普通SWT和JavaFX按钮的Java代码

Java

import javafx.embed.s

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值