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