JavaFX动态添加元素到GridPane

时间:2014-03-10 17:33:21

标签: java javafx javafx-2

我对JavaFX比较陌生,我一直很困惑为什么我的代码下面的代码没有产生预期的结果,即添加到网格中的标签。

我要做的是运行测试,将JavaFX Label添加到我的FXML GridPane,因为我想在不久的将来构建一个方法,允许用户选择一个文件,然后生成一个标签当用户选择文件并将该Label添加到GridPane时。

提前致谢,

代码:

private Label label1;

@FXML
private GridPane gridPane;

@FXML
public void handle() {

    FileChooser fileChooser = new FileChooser();
    fileChooser.setTitle("Select File");
    fileChooser.getExtensionFilters().addAll(
            new FileChooser.ExtensionFilter("Video Files", "*.mp4", "*.avi"),
            new FileChooser.ExtensionFilter("Audio Files", "*.wav", "*.mp3", "*.aac"),
            new FileChooser.ExtensionFilter("All Files", "*.*"));
    //Show open file dialog
    File file = fileChooser.showOpenDialog(null);

    try {
        System.out.println(file.getPath());
        System.out.println(file.getName());
        label1.setText(file.getName());
        gridPane.add(label1, 1, 1);
    } catch (Exception e) {
    }

}

FXML代码是一个标准文件,带有定义的GridPane,上面列出了fx:id。

1 个答案:

答案 0 :(得分:1)

您不会在任何地方初始化标签,因此它为空。因为你正在压缩异常,所以你看不到调用label1.setText(...)时生成的NullPointerException