【问题标题】:How to set value to cell in TableView in javafx如何在javafx的TableView中为单元格设置值
【发布时间】:2013-12-12 15:31:34
【问题描述】:

我是 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() 方法。

我搜索但不知道如何为表格视图设置值。
请给我参考或提示。

提前致谢。

【问题讨论】:

  • JavaFX 文档网站上有相当不错的教程,这里是关于TableView的教程
  • 你想编辑/添加数据到单个单元格还是你只想一次填满表格???

标签: javafx tableview


【解决方案1】:

假设我们有一个包含两列的表,一列是字符串,另一列是数字。要以编程方式设置表格的第 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);

【讨论】:

    【解决方案2】:

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

    • 将您的测试床放在桌子上:

      TableView<TestBed> table = new TableView<>();
      table.getItems().addAll(yourTestBeds);
      
    • 然后,您可以通过提供适当的单元格值工厂来创建所需的列,例如(使用 Java 8 语法):

      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);
      

    【讨论】:

    • 是的,但他问的是如何编辑和设置特定单元格的值,不是吗?
    猜你喜欢
    • 1970-01-01
    • 2011-10-23
    • 1970-01-01
    • 2017-03-11
    • 1970-01-01
    • 1970-01-01
    • 2017-01-04
    • 2016-06-14
    • 1970-01-01
    相关资源
    最近更新 更多