为什么这个基本的JavaFX程序不能启动?

时间:2019-11-11 11:38:21

标签: java user-interface javafx

我正在为初学者Java课程制作贷款计算器。它将从两个文本字段(“ loanAmount”和“ loanYears”)中输入内容,并且在单击按钮“ showTable”后将生成并显示一个表格,该表格显示利率,每月还款额和总贷款总额。

到目前为止,我只是开始使用一些必需的GUI元素来构建程序。尚未实现任何逻辑。但是,我很难让这个简单的舞台显示任何场景。实际上,舞台(窗口)根本不会显示。我已经从教科书中的指导练习中交叉引用了我的语法和代码结构,而且一切似乎都一致,所以我很困惑可能出现的问题。如果需要的话,该项目正在使用Java 1.7。

import javafx.stage.Stage;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
import javafx.scene.control.Label;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.HBox;

public class LoanCalculator extends Application{

    protected BorderPane getPane() {
        HBox paneInputs = new HBox(50);
        TextField loanAmount = new TextField();
        TextField loanYears = new TextField();
        Button showTable = new Button("Show Table");
        paneInputs.getChildren().addAll(loanAmount, loanYears, showTable);
        paneInputs.setAlignment(Pos.CENTER);
        paneInputs.setStyle("-fx-border-color: green");

        BorderPane pane = new BorderPane();
        pane.setTop(paneInputs);
        return pane;
    }

    @Override
    public void start(Stage primaryStage) { //Builds stage 
        Scene scene = new Scene(getPane(), 450, 200);
        primaryStage.setTitle("Loan Calculator (16.13)");
        primaryStage.setScene(scene);
        primaryStage.show();
}

1 个答案:

答案 0 :(得分:0)

要运行Java应用程序,您至少需要在一个用于启动它的类中使用main()方法。对于JavaFX应用程序,main()方法应调用Application.launch()

尝试将此函数添加到班级顶部:

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

要详细了解为什么在Java应用程序中需要使用main()方法的原因,请查看here