IntelliJ won';编译从文档中复制的基本JavaFX程序

IntelliJ won';编译从文档中复制的基本JavaFX程序,java,intellij-idea,javafx,Java,Intellij Idea,Javafx,我正在使用IntelliJ中的Scene Builder和Java FX制作我的第一个GUI程序。我想做一个选择框,所以我在这里查看了Java文档: 我根据文档中的choicebox,发现IntelliJ无法识别该方法。因此,我只是直接从文档中粘贴副本,但仍然得到了一个错误。我的代码如下: package sample; import javafx.scene.control.ChoiceBox; public class Controller { ChoiceBox cb = new

我正在使用IntelliJ中的Scene Builder和Java FX制作我的第一个GUI程序。我想做一个选择框,所以我在这里查看了Java文档:

我根据文档中的choicebox,发现IntelliJ无法识别该方法。因此,我只是直接从文档中粘贴副本,但仍然得到了一个错误。我的代码如下:

package sample;

import javafx.scene.control.ChoiceBox;

public class Controller {
 ChoiceBox cb = new ChoiceBox();
 cb.getItems().addAll("item1", "item2", "item3");
}
“.getItems()”为红色文本,错误“无法解析符号getItems”是列出的错误。其他人编译了这个程序,它为他们的机器工作

cb.getItems().addAll("item1", "item2", "item3");
需要放在方法的内部

正确的代码是:

package sample;

import javafx.fxml.FXML;
import javafx.scene.control.ChoiceBox;

public class Controller {
    @FXML private ChoiceBox cb;

    public void initialize() {
        cb.getItems().addAll("item1", "item2", "item3");
    }
}
注入字段后,
fxmloader
将调用
initialize
方法


编辑:添加了@fabian对
FXML
加载/初始化的评论

需要放在方法的内部

正确的代码是:

package sample;

import javafx.fxml.FXML;
import javafx.scene.control.ChoiceBox;

public class Controller {
    @FXML private ChoiceBox cb;

    public void initialize() {
        cb.getItems().addAll("item1", "item2", "item3");
    }
}
注入字段后,
fxmloader
将调用
initialize
方法



编辑:添加了@fabian对
FXML
loading/initialization

Cool的评论。现在我只需要让它真正起作用。它现在可以编译,但单击choicebox时不会显示任何选项。身份证匹配等等。我想我需要做一些其他的方法来填充选项或其他东西???@user2778506:您需要将
cb
作为一个字段,并用
@FXML
注释它:
@FXML private ChoiceBox cb,但不要初始化它(fxmloader执行此操作)。您可以在这里找到示例:,只需查找fxml中的
fx:id
属性以及控制器中的相应字段…@fabian感谢您处理
JavaFX
内容,我以前从未真正使用过该平台:)完成了所有这些。看看webm:@user2778506你能在你的问题中发布你的代码,而不是视频吗。例如,我看不到您在fxml文件中设置控制器类的任何地方。至于教程,很多人似乎都喜欢。酷。现在我只需要让它真正起作用。它现在可以编译,但单击choicebox时不会显示任何选项。身份证匹配等等。我想我需要做一些其他的方法来填充选项或其他东西???@user2778506:您需要将
cb
作为一个字段,并用
@FXML
注释它:
@FXML private ChoiceBox cb,但不要初始化它(fxmloader执行此操作)。您可以在这里找到示例:,只需查找fxml中的
fx:id
属性以及控制器中的相应字段…@fabian感谢您处理
JavaFX
内容,我以前从未真正使用过该平台:)完成了所有这些。看看webm:@user2778506你能在你的问题中发布你的代码,而不是视频吗。例如,我看不到您在fxml文件中设置控制器类的任何地方。至于教程,很多人似乎都喜欢。