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

如何在javafx的TableView中为单元格设置值

宗政霄
2023-03-14

我是javafx的新手。我已经在核心java代码设置值表。但是现在我正在转换我的javafx项目来维护代码和改进设计。

我试图设置价值表视图,但我不知道如何设置价值表视图。

这是我用来挥杆的代码。

String testbedName = treePath.getPathComponent(1).toString();
    TestBed currentTestbed = getTbF().get(testbedName);
    propertyTable.getModel().setValueAt(currentTestbed.getTestBedName(), 0, 1);
    propertyTable.getModel().setValueAt(currentTestbed.getTestBedFilePath() + "\\" + testbedName + ".xml", 1, 1);
    propertyTable.getModel().setValueAt(currentTestbed.getTbElements().size(), 2, 1);  

但我需要将javafx中的代码从JTable转换为TableView。但是tableview没有找到getModel()方法。

我进行了搜索,但没有找到如何设置表视图的值<请给我参考或提示。

提前谢谢。

共有2个答案

祖麻雀
2023-03-14

假设我们有一个有两列的表,一列代表字符串,另一列代表数字。要以编程方式设置表的第i个项目或行,我们可以这样做:

//Define the string
String s = "myString" ;
//Define the number
int value = 5;
//Synthesize the item = row
Item item = new Item(s, value);
//Set the i-th item
table.getItems().set(i, item);
呼延智明
2023-03-14

在JavaFX中,通常不会像这样逐个单元格设置值。例如,在你的情况下,你会

>

  • 将您的TestBeds放在表中:

    TableView<TestBed> table = new TableView<>();
    table.getItems().addAll(yourTestBeds);
    

    然后通过提供适当的单元格值工厂来创建所需的列,例如(使用Java8语法):

    TableColumn<TestBed, String> name = new TableColumn<>();
    name.setCellValueFactory(c-> new SimpleStringProperty(c.getValue().getTestBedName()));
    

    如果使用Java 7:

    name.setCellValueFactory(new Callback<CellDataFeatures<TestBed, String>, ObservableValue<String>>() {
        @Override public ObservableValue<String> call(CellDataFeatures<TestBed, String> c) {
            return new SimpleStringProperty(c.getValue().getTestBedName()));
        }
    });
    

    最后,将列添加到表中:

    table.getColumns().addAll(name, someOtherColumn);
    

  •  类似资料:
    • 问题内容: 在我的Java桌面应用程序中,我有一个包含3列的JavaFX表。我想将第三列的字体颜色设置为红色。我根本无法设置Tableb的字体颜色。我查看了CSS,但没有找到任何东西。有没有办法用CSS做到这一点?我还希望通过setFont()进行设置。空空如也。我什至无法找到在某个单元格上设置某些内容的方法。 我该怎么做?如何设置字体颜色?任何帮助将不胜感激。 问题答案: 您需要覆盖CellFa

    • 我一直在疯狂地寻找答案。是否可以在FXML TableView中定义硬编码值?我要硬编码的部分是第一列。

    • 我目前有一个表,其中的项可以根据各种列进行排序。我的当前表有空行,允许在不使用任何外部控件(表外按钮)的情况下随时插入新项。 我还没有找到一个解决方案,允许我在忽略空单元格的情况下对给定的列进行排序(即空单元格应该始终保留在表的底部,而所有其他单元格都根据需要进行排序) 对此的任何帮助都将不胜感激。 谢谢。

    • 我用这个例子http://docs.oracle.com/javafx/2/ui_controls/table-view.htm其中tableview基于MapValueFactory。 现在我遇到了编辑后的值不保存的情况。我的行动: 按“回车”- 但当我在这个单元格中再次按“回车”时,会显示旧值而不是新值。 请帮助我了解编辑单元格后如何保存更改?

    • 我正在创建一个TableView来显示有关自定义对象列表(EntityEvents)的信息。 表视图必须有2列。显示相应EntityEvent名称的第一列。第二列将显示一个按钮。按钮文本依赖于EntityEvent的属性。如果属性为零,则为“创建”,否则为“编辑”。 我做得很好,只是当相应的EntityEvent对象更改时,我找不到更新TableView行的方法。 非常重要:我不能将EntityE