很有可能!
一个必须安装JavaFX
2.0,并设法以某种方式将其包含
jfxrt.jar在Classpath中。
以下代码在Jframe中呈现JFXPanel。JFXPanel包含一个加载的WebView
google.com。
但是,至少在我的机器上,WebView感觉很草率。我正在Mac OS X 10.6上工作;JavaFX 2.0仍处于OS X的测试版中。
__我找到的 替代方法
包括MozSwing,它看起来非常有前途,而且感觉很快。遗憾的是,自2008年以来,该项目就不再进行开发了,捆绑的XUL运行程序已经很旧了(没有新的html
5)。
两种方法都是通过Maven包含的噩梦,您最好设置自己的本地存储库。
import java.awt.Dimension;import java.awt.Point;import javafx.application.Platform;import javafx.embed.swing.JFXPanel;import javafx.scene.Group;import javafx.scene.Scene;import javafx.scene.web.WebEngine;import javafx.scene.web.WebView;import javax.swing.JButton;import javax.swing.Jframe;import javax.swing.SwingUtilities;public class JavaFX { private static void initAndShowGUI() { // This method is invoked on Swing thread Jframe frame = new Jframe("FX"); frame.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE); frame.getContentPane().setLayout(null); // do the layout manually final JButton jButton = new JButton("Button"); final JFXPanel fxPanel = new JFXPanel(); frame.add(jButton); frame.add(fxPanel); frame.setVisible(true); jButton.setSize(new Dimension(200, 27)); fxPanel.setSize(new Dimension(300, 300)); fxPanel.setLocation(new Point(0, 27)); frame.getContentPane().setPreferredSize(new Dimension(300, 327)); frame.pack(); frame.setResizable(false); Platform.runLater(new Runnable() { // this will run initFX as JavaFX-Thread @Override public void run() { initFX(fxPanel); } }); } private static void initFX(final JFXPanel fxPanel) { Group group = new Group(); Scene scene = new Scene(group); fxPanel.setScene(scene); WebView webView = new WebView(); group.getChildren().add(webView); webView.setMinSize(300, 300); webView.setMaxSize(300, 300); // Obtain the webEngine to navigate WebEngine webEngine = webView.getEngine(); webEngine.load("http://www.google.com/"); } public static void main(final String[] args) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { initAndShowGUI(); } }); }}


