Java 以编程方式设置.fxml文件

Java 以编程方式设置.fxml文件,java,intellij-idea,javafx,fxml,Java,Intellij Idea,Javafx,Fxml,我习惯于用JavaFx编写代码,如下所示,因为几年前我就是这样学习的 import javafx.application.Application; import javafx.scene.*; import javafx.scene.layout.*; import javafx.scene.control.*; import javafx.stage.*; public class test extends Application { int c=0; public stat

我习惯于用JavaFx编写代码,如下所示,因为几年前我就是这样学习的

import javafx.application.Application;
import javafx.scene.*;
import javafx.scene.layout.*;
import javafx.scene.control.*;
import javafx.stage.*;

public class test extends Application {
    int c=0;
    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) throws Exception {
        primaryStage.setTitle("Demo");
        Button b = new Button("Click me");
        Label l = new Label("Count=" + c);
        VBox v = new VBox(20);
        v.getChildren().addAll(b, l);
        b.setOnAction(event -> {
            c++;
            l.setText("Count=" +c);
        });
        primaryStage.setScene(new Scene(v, 300, 300));
        primaryStage.show();
    }
}
我最近安装了JetBrains IntelliJ IDEA Ultimate Edition 2018.1.6,我发现要打开primaryStage窗口,我需要一个fxml文件


您完全可以在不使用FXML的情况下将IntelliJ与JavaFX一起使用

Q:有没有一种方法可以忽略fxml文件的使用?

A:考虑到您在创建新JavaFX项目时从IntelliJ获得的默认设置中引用的代码片段,是的,他们的默认设置使用
.fxml
,但不需要使用它。您可以删除该
sample.fxml
文件并根据需要重写
start

旁注:没有任何东西阻止您在同一项目中同时使用fxml和代码方法,在某些情况下,使用fxml是更好的方法,而在某些情况下,使用代码是更好的方法

Q:或者我可以使用标准的编码方式(第一个代码段)让编译器为我将其更改为fxml格式吗?


A:没有办法将Java代码转换为
fxml
,但正如我已经说过的,由您决定使用哪一个,您甚至可以在同一个项目中使用这两个工具。

如果您的IDE强制您从fxml进行转换,请停止使用此IDE,改用更好的IDE。使用fxml是一种选择,而不是必要的。在某些情况下,使用fxml并不是一个好的选择,如果您的fxml最终包含>10000个元素,那么使用fxml就不是一个好主意。编译器无法生成fxml输出,因为它的目的是创建
.class
文件。此外,我还不知道任何将java代码转换为fxml的工具(这通常是不可能的;例如,fxml中没有等效于循环的工具)。这很悲哀,因为我发现IntelliJ>>NetBeans>Eclipse>>BlueJ。IntelliJ是最快的编码方式。我得到了访问JavaEE和数据库插件的最终版本,但现在我看到它不能运行没有fxml文件的JavaFx程序。顺便说一句,谢谢你的音乐-现在你看错了。:)IntelliJ允许您创建任何类型的JavaFX程序,可以使用FXML或代码,也可以同时使用两者。IntelliJ中JavaFX应用程序的示例模板就是一个示例。你可以随心所欲地更改它。在提出这个问题并得出结论之前,你是否真的尝试过使用IntelliJ中的第一个代码段?是的,当然,我已经尝试过了。我只是重新启动了我的计算机,然后制作了一个普通的Java应用程序,然后在没有fxml文件的情况下输入JavaFx代码。不知怎么的,它成功了。我想每次我跑的时候窗户都会掉下来。我真的不知道是什么问题?我两次都以代码片段1的形式编写了完全相同的代码。不管怎样,它现在起作用了,所以不用担心。没问题,如果这解决了你的问题,就把它标记为解决方案,这样人们就知道你的问题已经解决了。