Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
单个窗格上的多个TableView表失败(JavaFX)_Java_User Interface_Javafx - Fatal编程技术网

单个窗格上的多个TableView表失败(JavaFX)

单个窗格上的多个TableView表失败(JavaFX),java,user-interface,javafx,Java,User Interface,Javafx,我必须在java应用程序中构建一个包含4个表的页面(我们选择使用javaFX,因此我们使用TableView表) 但是有一个问题。在一个窗格中使用多个表似乎并不成功。在这里你可以看到结果:(我还不能发布图片…) 正如你所看到的,它只显示了一名球员(一名守门员),而不是所有想要的球员。每当我禁用除一个表以外的所有表时,它都会显示所需的信息 您可以通过以下链接找到我的代码:您不能重用TableColumn对象 这失败了: tableTeamField.getColumns().addAll(name

我必须在java应用程序中构建一个包含4个表的页面(我们选择使用javaFX,因此我们使用TableView表)

但是有一个问题。在一个窗格中使用多个表似乎并不成功。在这里你可以看到结果:(我还不能发布图片…)

正如你所看到的,它只显示了一名球员(一名守门员),而不是所有想要的球员。每当我禁用除一个表以外的所有表时,它都会显示所需的信息


您可以通过以下链接找到我的代码:

您不能重用
TableColumn
对象

这失败了:

tableTeamField.getColumns().addAll(name,position,age,worth,shooting,...);
tableSelectionField.getColumns().addAll(name,position,age,worth,shooting,...);
将数据应用于表时,所有表中仅显示最后一个表中的数据。基本上,您正在对sane列应用不同的值:只有最后一个值可见

因此,您需要为每个
TableView
创建不同的
TableColumn
s。这将有助于:

tableTeamField.getColumns().addAll(name1,position1,age1,worth1,shooting1,...);
tableSelectionField.getColumns().addAll(name2,position2,age2,worth2,shooting2,...);

您不能在多个表中使用相同的列。@James所以我必须为每个表设置一组列?我相信是这样的。我没有像您在这里这样尝试在多个表之间“重复使用”列,但我认为您最终会违反“节点在场景图中只能出现一次”规则。例如,假设用户在一个表中调整“名称”列的大小,但在另一个表中不调整。
name.getWidth()
会给你什么?场景图不会抱怨重复使用了同一个节点,所以它会运行,但正如我所测试的,它会在所有表视图中显示最后的数据。事实上,当您调整一列的大小时,共享同一列的所有表都会同时调整大小。