使用javaFX编译和运行

时间:2014-03-02 08:33:28

标签: java javafx

我无法运行此代码。我从oracle教程得到了这个。 这是一个简单的hello world application.arlier我无法编译它但是现在在classpath中包含jfxrt.jar文件的路径之后我能够编译但是现在无法运行。

import javafx.application.Application;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

class A extends Application {

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

    public void start(Stage primaryStage) {
        primaryStage.setTitle("Hello World!");
        Button btn = new Button();
        btn.setText("Say 'Hello World'");
        btn.setOnAction(new EventHandler < ActionEvent > () {


            public void handle(ActionEvent event) {
                System.out.println("Hello World!");
            }
        });

        StackPane root = new StackPane();
        root.getChildren().add(btn);
        primaryStage.setScene(new Scene(root, 300, 250));
        primaryStage.show();
    }
}

我收到以下错误:

Exception in Application constructor
Exception in thread "main" java.lang.RuntimeException: Unable to construct Appli
cation instance: class A
        at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherIm
pl.java:393)
        at com.sun.javafx.application.LauncherImpl.access$000(LauncherImpl.java:
47)
        at com.sun.javafx.application.LauncherImpl$1.run(LauncherImpl.java:115)
        at java.lang.Thread.run(Thread.java:744)
Caused by: java.lang.NoSuchMethodException: A.<init>()
        at java.lang.Class.getConstructor0(Class.java:2810)
        at java.lang.Class.getConstructor(Class.java:1718)
        at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherIm
pl.java:275)
        ... 3 more

帮帮我,如何解决这个问题。 感谢

1 个答案:

答案 0 :(得分:1)

让你的课程公开

public class A extends Application

然后它应该工作。

无论如何,你需要另一个import-Statement吗?我认为缺少ActionEvent的导入:

import javafx.event.ActionEvent;