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

如何在JavaFX中从String[]列表中填充TableView?

魏烨熠
2023-03-14

我试图用列表中的字符串数组动态填充TableView(我想有更好的方法来处理信息,但这是我被赋予的任务…),所以我创建了一个TableView,创建了所有的列和东西,但在填充TableView的时候我迷路了。

列表中有所有的字符串数组,一切似乎都正常工作,任何数组上都没有MissPlated数据或类似的东西,当我运行项目时,列名按照我希望的方式出现,列表中的每个数组在tableview上都有一行,但我无法让它显示信息。

以下是我目前使用的流程代码。

int tam = regs.length-3;
String[] aux = new String[regs.length-3];
ObservableList<String[]> list = FXCollections.observableArrayList();

for (int i = 0; i < db.length; i++) {            
    aux[(i % tam)] = db[i];
    if (((i % tam) == tam-1) & (i > 0)) {
        list.add(aux);
        aux = new String[tam];
    }
}

TableView<String[]> table = new TableView<>();

TableColumn[] tableColumns = new TableColumn[tam];
for (int i = 3; i < regs.length; i++) {
    tableColumns[i-3] = new TableColumn(regs[i]);
}
table.getColumns().addAll(tableColumns);

table.setItems(list);

共有1个答案

尹臻
2023-03-14

您需要在表列上设置单元格值工厂。类似于

TableColumn[] tableColumns = new TableColumn[tam];
for (int i = 3; i < regs.length; i++) {
    tableColumns[i-3] = new TableColumn(regs[i]);
    final int index = i - 3 ; // I think, don't really understand what you're doing with indexes...
    tableColumns[i-3].setCellValueFactory(new Callback<CellDataFeatures<String[], String>>, ObservableValue<String>>) {
        @Override
        public ObservableValue<String> call(CellDataFeatures<String[], String> cellData) {
            return new ReadOnlyStringWrapper(cellData.getValue()[index]);
        }
    });
}
 类似资料:
  • 我正在尝试用来自可观察列表的数据填充TableView。我以前做过这个,但由于某种原因我现在无法让它工作。我没有得到任何异常或任何东西,但它根本不会向表添加任何东西。 这个问题很相似,但我发现了JPA引起的另一个问题,这使得提到的的构造函数永远不会执行。相反,JPA会神奇地分配值。 这是我的代码-我剪下了与问题无关的代码: FXML 主要的Java语言 修改Java语言 任何帮助解决这个问题将不胜

  • 并希望按列表中的值更改行C1-C3。预期产出:

  • 我一直在看教程,我似乎无法得到一个表来填充。我也在使用net beans和scenebuilder。如有任何帮助,我们将不胜感激!挣扎了5个小时。 下面是的代码 以下是我的主要内容:

  • 我有一个简单的JavaFX类,对于这个问题,它的结构是这样的。 BorderPane包含包含FlowPane的StackPane。 几天来,我一直试图让StackPane填充其父级BorderPane,但似乎没有任何效果。最终结果应该是StackPane的背景设置为“红色”。 代码: 我的应用程序正在运行的照片 所以基本上这个左侧区域应该完全填充我的BorderPane的左侧,因此背景应该正确覆盖

  • 我的Java程序产生了很多数据,我用它构建了单个的ResultObject。因为只有某些结果对象会引起兴趣,所以我填充了一个可观察的HashMap 虽然映射和处理这些结果按预期工作,但我很难用该ObservableHashMap填充TableView 我的CustomObject(如果两个CustomObject具有相同的属性,只需检查JSONObject): 我的ObservableHashMa

  • 我试图从数据(ObservableList)中填充tableview2(fx:id tableview)行。但当它完成时,tableview2只显示空记录。在控制台中,我看到数据中的所有行(ObservableList)。我知道stackoverflow中有很多关于这方面的问题,很抱歉(还有我的英语),但请你问我代码中的错误在哪里?感谢您的帮助或关注)。 更新(添加MainPayer.java和更