我在JavaFx中创建了一个表。我用反射用数字1到100填充表。该表包含区号和描述。有100个区域。我希望表格可以编辑。我使用以下代码使单元格可编辑。
zonesTable.setEditable(true);
zone.setEditable(true);
zone.setCellFactory(TextFieldTableCell.<Zones>forTableColumn());
description.setEditable(true);
description.setCellFactory(TextFieldTableCell.<Zones>forTableColumn());
zone.setCellValueFactory(new PropertyValueFactory<Zones, String>("rZoneNumber"));
description.setCellValueFactory(new PropertyValueFactory<Zones, String>("rDescription"));
for(int i = 0; i < 100; i++){
data.add(new Zones(i + "", ""));
}
zonesTable.setItems(data);
目前,此代码会向区域列添加数字,并使区域和说明列可编辑。但是,在我在列中键入一个值并单击下一行后,我输入表中的值就会消失。我不知道为什么。在选择与我正在编辑的行不同的行后,我需要做什么才能使我的类型值在表中保持可见?提前谢谢!
答案 0 :(得分:0)
但是,在我在列中键入一个值并单击下一行后, 我在表格中输入的值消失了。
它不起作用,因为Oracle拒绝修复JavaFX中一个严重的,令人尴尬的错误。
您的解决方案是在单击下一行之前按Enter键。但当然,您无法向用户请求。
您可以找到解决方法here。
如果您想要修改错误并对错误发表评论here's the issue。
答案 1 :(得分:0)
没有足够的代码来确定您如何使用表格。
当按下Enter时,那些仍然只提交单元格中的更改。因此,您仍然需要根据您考虑提交版本的事件来实现自己的实现。