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

如何在 JavaFX 中创建运行时动态添加列的表视图?

左丘积厚
2023-03-14

我有一个 TableView,它的内容应该是可编辑的,实际上必须保留在数据库中。此表视图有一些预定义的列和其他一些将在运行时定义的列。假设我的表格将显示一些特殊食物的主要材料。这些主要材料具有一些预定义的列(属性),例如名称、价格和单位;此外,这些主要材料还有一些其他属性,这些属性根据以前的用户输入(如脂肪、蛋白质等)保留在数据库中。请注意,这些属性位于数据库中,应在运行时映射到表中的列(这些列也应该是可编辑的)。所以我在 fxml 文件中创建了表并添加了预定义的列;还有应该声明为存储表行的表模型。这是我的表模型类:(为简单起见,省略了构造函数和访问器方法)

public class PrimaryMaterialBean {
    private SimpleStringProperty number;
    private SimpleStringProperty name;
    private SimpleStringProperty price;
    private SimpleStringProperty unit;
}

和表视图代码:

<TableView fx:id="table" layoutX="97.0" layoutY="170.0" nodeOrientation="RIGHT_TO_LEFT" prefHeight="400.0" prefWidth="816.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="121.0">
         <columns>
            <TableColumn fx:id="numberColumn" minWidth="50.0" prefWidth="50.0" text="number" />
            <TableColumn fx:id="nameColumn" minWidth="300.0" prefWidth="300.0" text="name" />
            <TableColumn fx:id="priceColumn" minWidth="220.0" prefWidth="220.0" text="price" />
            <TableColumn fx:id="unitColumn" minWidth="90.0" prefWidth="90.0" text="unit" />
         </columns>
</TableView>

我知道我应该在相应的控制器文件中声明额外的动态列。我也知道如何添加动态库。但实际问题是,我不知道如何声明这些列是可编辑的,以及如何在模型类中映射相应的文件:(

共有1个答案

姚鹤龄
2023-03-14

我找到了一个解决方案来完成这项任务,它是在运行时创建一个java类。我不知道这个解决方案是否可靠,但对我来说,它是有效的。

 类似资料:
  • 我想创建一个对象动态,例如在JavaFX中的一个圆。我的代码会像这样。 我现在的问题是如何增加每个圆的独特性。例如,如果我要添加每个圆的不同颜色和大小。我该如何实现呢?请帮忙。

  • 我在Google和Stackoverflow上搜索过这个,但我只是没有得到给定的示例。有人能给我解释一下吗? 我想在表视图的最后一列添加一个按钮,当它被单击时,它应该触发一个侦听器并传递buttons行的对象。我只是没有从gist中得到下面的例子。github。通用域名格式: 这是我的完整当前代码: 现在,我必须创建一个的部分是可以理解的。但是如何将其分配给列呢? 我明白这一点: 但不是这个:

  • 当Java11排除了JavaFX作为最新版本的一部分时,我得到了以下错误。 那么如何在Java11中将JavaFX添加到Eclipse中呢?谢了。

  • 我试图开发一段代码来将数据从Excel文件导入/导出到Java中。我已经完成了对已定义模板的导入和导出(例如:类Employee,我知道Excel工作表在column1中有“ID”,在column2中有“Name”,等等)。我遇到的麻烦是添加列和行,以便使TableView具有与导入的Excel文件相同的信息,而不管行/列的数量如何。 当我从Excel文件导入数据时,我会将其发送到“ArrayLi

  • 问题内容: 我已经在Google和Stackoverflow上进行了搜索,但没有得到给出的示例。有人可以向我解释一下。 我想在表视图的最后一列中添加一个按钮,当单击它时,它应该触发一个侦听器并传递按钮行的对象。我只是没有从 gist.github.com 得到以下示例: 这是我目前的完整代码: 现在我必须创建的部分是可以理解的。但是如何将其分配给列? 我了解这一点: 但这不是: 问题答案: 为了能

  • 我正在Springboot应用程序中的Mongo Db中创建一个视图。下面是相同的代码 我想添加allowDiskUse:true条件,因为我得到以下错误 堆栈跟踪:|/java.lang.Exception:[profile_event_view@stage[副本集:]]数据库错误!|___/Mongo服务器错误(MongoQueryException):查询失败,错误代码为292,错误消息为“