(翻译)第七回 JavaFX2.0和Swing的集成
原文地址http://download.oracle.com/javafx/2.0/swing/jfxpub-swing.htm
?
JavaFX 2.0 发布版引入了JFXPanel类,它位于javafx.embed.swing包中,使你能够将JavaFX内容绑定进Swing 程序。
本文教你怎么将JavaFX内容加进Swing 程序中并指导你如何在一个同时具备Swing 和JavaFX 的应用中正确使用线程。
?
JavaFX数据应该只能在JavaFX线程上访问。call方法验证了线程并确保特点URL的页面被加载在JavaFX线程上。Callback.java 文件中有完整代码。Example 6 是表明了实现方案的代码块。
Example 6
public final void call(final String value) { if (Platform.isFXApplicationThread()) { callImpl(value); } else { Platform.runLater(new Runnable() { @Override public void run() { callImpl(value); } }); }}protected void callImpl(String value) { getEngine().load(value);}当 WebView 组件加载了新页面后,页面标题就从JavaFX数据中取回并传递给Swing GUI。然后页面标题就显示在标签页上并加入应用标题。 TabbedBrowser.java中有完整代码。Example 7 是表明了实现方案的代码块。
Example 7
public WebPane addNewTab(final String url, boolean selected) { ... final WebPane wp = new WebPane(url); wp.getBrowser().getEngine().titleProperty().addListener(new javafx.beans.value.ChangeListener<String>() { @Override public void changed(ObservableValue<? extends String> observable, String oldValue, final String title) { EventQueue.invokeLater(new Runnable() { @Override public void run() { setTitleAt(indexOfComponent(wp), title); setToolTipTextAt(indexOfComponent(wp), title); if (getSelectedComponent() == wp) { setWindowTitle(title); } } )}; } )};}想了解怎么部署二者的整合应用,到 Deploying JavaFX Applications查看。
1 楼 nizhenyuan 2011-11-24 请问一下怎样将javaFX2.0在web页面上显示?多谢~如果可以,发到我的邮箱也可以894108065@qq.com 2 楼 somefuture 2011-11-24 nizhenyuan 写道请问一下怎样将javaFX2.0在web页面上显示?多谢~如果可以,发到我的邮箱也可以894108065@qq.com