我的应用程序中有一个TableView,以标准方式使用CellValueFactory和ObservableList。
然而,这对我来说还不够,我解释原因: 第一列a希望拥有永久保留的固定值。从课程
填写三列public class ValuesTriplet {
private StringProperty L1 = new SimpleStringProperty();
private StringProperty L2 = new SimpleStringProperty();
private StringProperty L3 = new SimpleStringProperty();
...
// constructor
// properties setters/getters
}
(这个中间部分我有工作。)
一个(最后一个)字符串列如下。
我的问题是我正在通过以下方式从设备读取数据:
1)读取三元组并填充到表(工作部分) - 这也确定行号
2)读取最后一列的单个值 - 但只有一些行具有它们(!)。如何在没有add()方法的情况下写入现有表?
3)转到1
或者我可以为每个部分提供单细胞工厂吗?
如果有任何不清楚的地方请询问。谢谢。
答案 0 :(得分:0)
一个独立的测试案例可能会让我们更容易理解您的问题。
这只是一个视图更新问题吗?并且未能更新的属性是从Observable和部分可观察列表派生的,并通过PropertyValueFactory注册为列?如果没有,那么TableView将不会自动知道您的模型已更改。您可以通过这种方式强制更新:
public void updateData() {
if (tableView.getColumns().size()==0)
return;
tableView.getColumns().get(0).setVisible(false);
tableView.getColumns().get(0).setVisible(true);
}
我在javafx迁移中遇到了这个问题,我必须使用带有JavaFx表视图的swing表模型。当然,视图不会自动通知模型的更改。更新模型后调用上面的代码为我更新表。