当前位置: 首页 > 知识库问答 >
问题:

JavaFX动态向GridPane添加元素

司知
2023-03-14

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

我想做的是运行一个测试,将JavaFX标签添加到我的FXML GridPane,因为我想在不久的将来构建一个方法,允许用户选择一个文件,然后在用户选择文件时生成一个标签并将该标签添加到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代码是一个标准文件,其中定义了一个网格窗格,上面列出了fx:id。

共有1个答案

仲孙钊
2023-03-14

您没有在任何地方初始化标签,因此它为空。由于您正在挤压异常,因此在调用label1时不会看到生成的NullPointerException。setText(…)

 类似资料:
  • 我想在JavaFX中显示一个包含不同数量矩形的网格。重要的是不能调整此网格的大小。 我选择了布局。我动态地将添加到它中。下面是我的网格看起来像2行4列。 在调整大小时,我希望它保持相同的整体形状,也就是说每个具有相同的大小,并且在我的之间保持水平和垂直间隙。 null

  • 问题内容: 我是Groovy的新手,尽管阅读了许多有关此的文章和问题,但我仍然不清楚发生了什么。到目前为止,据我了解,当您在Groovy中创建新数组时,底层类型是Java ArrayList。这意味着它应该可调整大小,您应该能够将其初始化为空,然后通过add方法动态添加元素,如下所示: 编译,但是在运行时失败:方法的无签名:[LMyType; .add()适用于参数类型:(MyType)值:[My

  • 我需要创建可以动态变化棋盘游戏。 它的大小可以是5x5、6x6、7x7或8x8。 我将JavaFX与NetBeans和Scene builder一起用于GUI。 对于GridPane中的每个单元格,我将添加单元格编号的StackPane+label: 我在网上搜索,但没有找到与我相同的问题。 唯一与我相似的问题是在这里找到的: 在JavaFX中动态地向固定大小的GridPane中添加元素 但是他的

  • 你能帮我解决这个问题吗? 我在类<code>单元格</code>中创建按钮,并向该按钮添加一些默认操作。 在< code>Game类中,我想给这个按钮添加额外的动作,但我也想保留默认动作。 我知道新操作覆盖了以前的操作。因此,如果我单击按钮,它只会打印。 是否可以向按钮添加新操作并保留以前的连接?

  • 问题内容: 我有一个空的JTable,绝对没有。我需要以某种方式动态生成其表列。我尝试使用的代码的简化版本: 但是我得到了 线程“ AWT-EventQueue-0”中的异常java.lang.ArrayIndexOutOfBoundsException:0> = 0 我究竟做错了什么? 如果有帮助,这是完整的堆栈跟踪: 问题答案: 我认为您需要将列添加到表的数据模型及其列模型中。当数据模型更改时

  • 问题我想在运行时向gridpane添加通过javafx scene builder构建的定制面板。我的定制面板有按钮,标签等。 我的尝试我试图从窗格扩展... ...然后在conroller的添加方法中使用此面板 它工作,但它的表现非常非常差。 我想要的是有一种方法可以通过javafx scene builder设计面板(结果是在fxml中使用这个面板),然后在运行时将其添加到gridpane中,