是否可以使用JavaFx创建Java applet?

时间:2016-10-03 10:00:48

标签: java javafx applet

我想使用Javafx Scene Builder创建一个applet。我知道创建applet的传统方式,但后来我开始使用JavaFx,我很喜欢使用Scene Builder创建出色的用户界面设计,然后编写简洁的自定义代码。所以,我可以使用JavaFx创建桌面程序,但现在我想编写小型实用程序并将其嵌入浏览器中。老实说,我不喜欢编写代码来创建U.I.一个小程序,所以我在想是否有办法使用Javafx创建一个小程序。

P.S - 我是Stackoverflow的新手。所以,请原谅我犯的任何错误。

2 个答案:

答案 0 :(得分:2)

小程序是一种死技术,所以你应该完全忘记它们。至少在最新的Chrome浏览器中删除了对applet的支持,而且很可能也是其他浏览器。

也无法通过JavaFX创建applet。

答案 1 :(得分:2)

由于sklearn's document允许将JavaFX组件嵌入Swing组件,并且Swing组件可以轻松创建Applet组件,因此可以完成此操作1}}。

以下是将Java FX Rectangle引入Applet的示例:

public class Main extends Applet {

    private void initAndShowGUI() {
        // This method is invoked on Swing thread
        final JFXPanel fxPanel = new JFXPanel();
        fxPanel.setPreferredSize(new Dimension(100, 100));
        add(fxPanel);
        setVisible(true);
        Platform.runLater(
            new Runnable() {
                @Override
                public void run() {
                    initFX(fxPanel);
                }
            }
        );
    }

    private static void initFX(JFXPanel fxPanel) {
        // This method is invoked on JavaFX thread
        final Scene scene = createScene();
        fxPanel.setScene(scene);
    }

    private static Scene createScene() {
        final Rectangle rectangle = new Rectangle(100.0, 100.0);
        rectangle.setFill(Color.BLACK);
        return new Scene(new VBox(rectangle));
    }

    @Override
    public void init() {
        SwingUtilities.invokeLater(
            new Runnable() {
                @Override
                public void run() {
                    initAndShowGUI();
                }
            }
        );
    }
}

然而小程序已过时,很快就会删除,所以如果您可以避免使用它们,请不要使用它们。或者,您可以使用Deployment Toolkit library将您的JavaFX application嵌入网页或从浏览器启动,有关此方法的更多详细信息JFXPanel