首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可以制作JavaFX web小程序吗?

可以制作JavaFX web小程序吗?
EN

Stack Overflow用户
提问于 2011-12-20 04:00:50
回答 2查看 15.3K关注 0票数 8

我喜欢老的Java applet。但因为我真的很喜欢JFX的工作方式,我想用它写一些游戏(甚至是游戏制作系统,谁知道呢?),但我希望能把它们发布到我的网站上。我们该怎么做呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-20 04:32:09

是的,您应该能够在您的网页中嵌入JavaFX:

http://docs.oracle.com/javase/8/docs/technotes/guides/deploy/deployment_toolkit.html#BABJHEJA

http://docs.oracle.com/javase/8/javase-clienttechnologies.htm

票数 4
EN

Stack Overflow用户

发布于 2014-11-01 20:22:35

是的,您可以在基于Swing的JApplet中嵌入JavaFX图形用户界面。您可以使用JFXPanel来实现这一点-它本质上是Swing和JavaFX面板之间的适配器。

完整示例:

设置JavaFX图形用户界面的FXApplet类:

代码语言:javascript
复制
public class FXApplet extends JApplet {
    protected Scene scene;
    protected Group root;

    @Override
    public final void init() { // This method is invoked when applet is loaded
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                initSwing();
            }
        });
    }

    private void initSwing() { // This method is invoked on Swing thread
        final JFXPanel fxPanel = new JFXPanel();
        add(fxPanel);

        Platform.runLater(new Runnable() {
            @Override
            public void run() {
                initFX(fxPanel);
                initApplet();
            }
        });
    }

    private void initFX(JFXPanel fxPanel) { // This method is invoked on JavaFX thread
        root = new Group();
        scene = new Scene(root);
        fxPanel.setScene(scene);
    }

    public void initApplet() {
        // Add custom initialization code here
    }
}

以及它的一个测试实现:

代码语言:javascript
复制
public class MyFXApplet extends FXApplet {
    // protected fields scene & root are available

    @Override
    public void initApplet() {
        // this method is called once applet has been loaded & JavaFX has been set-up

        Label label = new Label("Hello World!");
        root.getChildren().add(label);

        Rectangle r = new Rectangle(25,25,250,250);
        r.setFill(Color.BLUE);
        root.getChildren().add(r);
    }
}

或者,您也可以使用FXApplet gist,它还包含一些文档。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8566818

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档