Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么赢了';这是一个基本的JavaFX程序启动吗?_Java_User Interface_Javafx - Fatal编程技术网

为什么赢了';这是一个基本的JavaFX程序启动吗?

为什么赢了';这是一个基本的JavaFX程序启动吗?,java,user-interface,javafx,Java,User Interface,Javafx,我正在为Java初学者课程制作一个贷款计算器。它将从两个文本字段(“loanAmount”和“loanYears”)中获取输入,点击“showTable”按钮后,将生成并显示利率上升、每月付款和总贷款总额的表格 到目前为止,我只开始用一些必需的GUI元素构建程序。没有实现任何逻辑。然而,我很难让这个简单的舞台显示任何场景。事实上,舞台(窗口)从未出现过。我已经将我的语法和代码结构与课本中的指导练习交叉引用,所有内容似乎都是一致的,所以我不知道问题可能是什么。如果有必要的话,这个项目正在使用Jav

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

到目前为止,我只开始用一些必需的GUI元素构建程序。没有实现任何逻辑。然而,我很难让这个简单的舞台显示任何场景。事实上,舞台(窗口)从未出现过。我已经将我的语法和代码结构与课本中的指导练习交叉引用,所有内容似乎都是一致的,所以我不知道问题可能是什么。如果有必要的话,这个项目正在使用Java1.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();
}

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

尝试将此函数添加到类的顶部:

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

有关Java应用程序中为什么需要
main()
方法的更多详细信息,请参阅。

这并不完全正确。对于Java 8到11,
Java
命令将识别并启动
应用程序
类,而不需要
静态void main(String[])
方法。末尾的@Override语句用于覆盖Application.launch,并在其后使用“start”方法启动。这就是我们被指示要做的,并且在我前面提到的所有练习中都起到了作用。@Stephen C这对Java 12-13不再适用了吗?@vetos-根据Java 7对
Java
的手动输入,您需要一个
main
方法;看见问题:为什么要使用Java7?这是生命的终结!你的老师告诉过你必须使用Java7吗?我之所以使用Java7,是因为在过去的几个单元中,JavaFX的概念已经被更新版本的Java所弃用。我们的讲师让我们使用Eclipse,并指导我们在使用Java12时添加JavaFX支持,但我根本无法让它工作。我切换到了NetBeans,并决定在这些单元中使用7。除此之外,我还在其他示例中使用了7,其中没有包含主要方法,它们仍然有效。我不明白从一个类中省略一个主方法如何工作得很好,而破坏另一个方法?运行应用程序时会发生什么?您的IDE是否显示它正在运行,但窗口没有出现,或者它退出时有错误?IDE确实指示“构建成功”但是控制台显示了
java.lang.UnsupportedClassVersionError:org/apache/tools/ant/launch/Launcher:Unsupported major.minor version 52.0
,然后显示了十几行引用不同抽象类的代码,这些抽象类似乎是默认java包的一部分。我会复制并粘贴整个消息,但它远远超出了此处注释的字符限制。这可能是问题所在-
不支持的主要版本。次要版本52
意味着应用程序正在使用Java版本8.0运行,而您说您正在使用Java 7开发。也许能解决你的问题。确保使用
javac-target 1.7 LoanCalculator.java生成类,或者尝试在IDE中使用java版本。