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

如何将行和列添加到JavaFX 8 TableView

曹华荣
2023-03-14

我在互联网上看到了向TableView添加行的示例,例如使用Oracle留档中的Person类。

但我的列数是可变的,所以我不能绑定到Person(或任何其他)bean业务对象

Oracle示例继续展示了如何将列绑定到属性名,但对于这一点,它只展示了如何添加列,而不是行。

我的问题是,有人能给我指出一个Hello, World动态添加任意列和/或行到JavaFX 8 TableView的例子吗?

共有2个答案

范翰飞
2023-03-14

有点笨重,但下面的示例代码似乎有效:

    TableView table = new TableView<>();
    private char nextChar = 'A';

    private void addColumn(TableView table) {
      String mapChar = String.valueOf(nextChar++);
      TableColumn<Map, String> column = new TableColumn<>("Class " + mapChar);
      column.setCellValueFactory(new MapValueFactory(mapChar));
      column.setMinWidth(130);
      column.setCellFactory(cellFactoryForMap);
      table.getColumns().add(column);
    }

    private void addRow(TableView table) {
      ObservableList<Map> allData = table.getItems();
      int offset = allData.size();
      Map<String, String> dataRow = new HashMap<>();
      for (int j = 0; j < table.getColumns().size(); j++) {
        String mapKey = Character.toString((char) ('A' + j));
        String value1 = mapKey + (offset + 1);
        dataRow.put(mapKey, value1);
      }
      allData.add(dataRow);
    }
  }
解沈义
2023-03-14

使用列表

例如,这将创建一个TableView

public TableView<List<String>> readTabDelimitedFileIntoTable(Path file) throws IOException {
    TableView<List<String>> table = new TableView<>();
    Files.lines(file).map(line -> line.split("\t")).forEach(values -> {
        // Add extra columns if necessary:
        for (int i = table.getColumns().size(); i < values.length; i++) {
            TableColumn<List<String>, String> col = new TableColumn<>("Column "+(i+1));
            col.setMinWidth(80);
            final int colIndex = i ;
            col.setCellValueFactory(data -> {
                List<String> rowValues = data.getValue();
                String cellValue ;
                if (colIndex < rowValues.size()) {
                    cellValue = rowValues.get(colIndex);
                } else {
                     cellValue = "" ;
                }
                return new ReadOnlyStringWrapper(cellValue);
            });
            table.getColumns().add(col);
        }

        // add row:
        table.getItems().add(Arrays.asList(values));
    });
    return table ;
}

 类似资料:
  • 问题内容: 如何添加到MySQL表的现有列? 问题答案: 我认为您想按照命令中的说明进行操作。可能是这样的: 在上面运行之前,请确保该列具有主索引。

  • 问题内容: 我想更新SQL表中的1列。示例:列中的当前值是这样的 现在,我想像这样更新整个专栏:www.mypizza.com/2013/09/pizzalover.jpg有什么办法可以做到这一点?提前致谢 问题答案: 您可以使用语句简单地更新列

  • 问题内容: 我正在尝试向从创建的数组中添加一列。在这种情况下,它是一个数组:(行,列)。 我想添加第九列。空或零都无所谓。 问题答案: 我认为您的问题是您希望就地添加该列,但是由于存储的numpy数据的原因,它的作用是创建连接数组的副本 所以你需要保存输出: 替代方式: 我相信这三个函数(以及)之间的唯一区别是未指定when的默认行为: 假设 假设除非输入为1d,否则 如果输入为1d,则假定在添加

  • 我的json是{[{“key1”:“value1”,“key2”:“valu2”},{“key3”:“value3”,“key4”:“valu4”}]} 如何将上面的文字修改如下。谢谢你帮助我的朋友 {"travel": [{"key1":"value1 "," key 2 ":" value 2 " },{ key3":"value3 "," key4":"value4}]}

  • 问题内容: 我正在尝试找到一种将图像添加到JavaFx TableView列的方法,该图像具有通过hibernate从H2数据库填充的其他列中的数据。TableView是在JavaFx Scene Builder中设计的。 到目前为止,这是我设法做到的: 控制器类: 我说那是一个错误。 这是我第一次尝试将图像添加到TableView中。 从昨天开始,我一直四处张望,但现在似乎被困住了。我希望能有所

  • 问题内容: 将空列添加到pandas对象的最简单方法是什么?我偶然发现的最好的东西是 有没有那么不合常理的方法? 问题答案: 如果我理解正确,则应填写作业: