无法从Eclipse运行JavaFx代码

时间:2015-05-11 13:52:35

标签: java eclipse swing javafx

我在oracle网站上找到了这个代码,但是我无法用Eclipse启动它说我"无法启动"。我已经安装了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!"));
        }
    });
}
}

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

3 个答案:

答案 0 :(得分:5)

在Java 8中,即使它没有javafx.application.Application方法,也可以直接启动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从"运行配置"运行它。向导。选择SwingFX课程后,选择"运行"从菜单中,然后"运行配置"。在" Main"选项卡确保显示正确的班级名称(即" SwingFX"),然后按"运行"按钮。

一旦你设置了它,绿色"运行"工具栏上的按钮(在Java透视图中)将再次运行应用程序,直到您运行其他内容。

答案 1 :(得分:2)

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

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

答案 2 :(得分:0)

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