不能 运行 来自 Eclipse 的 JavaFx 代码

Can't run JavaFx code from Eclipse

我在站点 oracle 上找到了这段代码,但我无法使用 Eclipse 启动,它说我 "Unable to launch"。我已经安装了 JDK 8 但它不起作用...

有人有解决办法吗? :p

public class SwingFX extends Application {

@Override
public void start (Stage stage) {
    final SwingNode swingNode = new SwingNode();

    createSwingContent(swingNode);

    StackPane pane = new StackPane();
    pane.getChildren().add(swingNode);

    stage.setTitle("Swing in JavaFX");
    stage.setScene(new Scene(pane, 250, 150));
    stage.show();
    }

private void createSwingContent(final SwingNode swingNode) {
    SwingUtilities.invokeLater(new Runnable() {
        @Override
        public void run() {
            swingNode.setContent(new JButton("Click me!"));
        }
    });
}
}

link 到我找到代码的网站:https://docs.oracle.com/javafx/8/embed_swing/jfxpub-embed_swing.htm

你没有写主要方法。因此 JVM 不知道起点

Eclipse 检测到 JavaFX 应用程序可以在 Java 8 中没有 main 方法的情况下启动时出现问题 - 解决方法是自己添加

public static void main(String[] args) {
    launch(args);
}

在 Java 8 中,您可以直接启动 javafx.application.Application subclass,即使它没有 main(String[] args) 方法。问题是当前版本的 Eclipse 不检查这个,并且(至少在上下文菜单中)只检查 main(...) 方法是否存在。因此,要允许它从 Eclipse 运行,您可以自己添加 main(...) 方法:

public class SwingFX extends Application {

    @Override
    public void start(Stage stage) {
        // ...
    }

    public static void main(String[] args) {
        launch(args);
    }
}

或者,您可以直接指示 Eclipse 从 "Run Configurations" 向导中 运行 它。选择 SwingFX class 后,从菜单中选择 "Run",然后选择 "Run Configurations"。在 "Main" 选项卡中确保出现正确的 class 名称(即 "SwingFX"),然后按 "Run" 按钮。

设置完成后,工具栏上的绿色 "Run" 按钮(在 Java 透视图中)将再次 运行 应用程序,直到您 运行 别的。