如何在不使表可编辑的情况下在javafx中更新或更改表原始值?



我非常沮丧,多次尝试实现这一点,但还没有成功。 当用户更改按钮时,我正在尝试更改javafx表原始的特定值。假设如果表的特定原始值为 10,那么如果用户按下按钮,该值将更改为 20,但我该怎么做? 但是这个简单的技术在java swing中非常容易。请有人帮助我在javafx中做同样的事情。

您不直接更新TableCell的值。相反,请修改基础数据模型值。

看看当你打电话给tableView.setItems()时,你传递给TableViewList<>是什么类型的。 这是您要更新的数据类型。

例如,假设您有一个包含Person对象的ListTableView<Person>

public class Person {
private final StringProperty name = new SimpleStringProperty();
private final StringProperty email = new SimpleStringtProperty();
public Person (String name, String email) {
this.name.set(name);
this.email.set(email);
}
public String getName() {
return name.get();
}
public StringProperty nameProperty() {
return name;
}
public void setName(String name) {
this.name.set(name);
}
public String getEmail() {
return email.get();
}
public StringProperty emailProperty() {
return email;
}
public void setEmail(String email) {
this.email.set(email);
}
}

所以你有你的List<Person>,你用它来填充你的TableView

tableView.setItems(FXCollections.observableArrayList(persons));

现在,当用户单击某个Button或者您希望使用新值更新TableView时,您将更新Person对象:

person.setEmail("me@home.com");

更改该属性后,TableView将更新以反映新值。


这是一个高级概述/示例。如果您需要更详细的帮助,请编辑您的问题,并包含一个最小的、可重现的示例来演示您面临的确切问题。

阅读关于如何提出一个好问题的帮助文章也是明智的。

最新更新