javafx - 如何在 javafx 中更新或更改表 raw 的值而不使表可编辑?
问题描述
我非常沮丧,多次尝试实现这一点,但还没有成功。当用户更改按钮时,我正在尝试更改 javafx 表 raw 的特定值。假设如果表格有一个特定的原始值为 10,那么如果用户按下按钮,该值将更改为 20,但我该怎么做呢?但是这种简单的技术在 java swing 中非常容易。请帮助我在 javafx 中做同样的事情。
解决方案
您不TableCell
直接更新 a 的值。相反,修改基础数据模型值。
看看你在调用时List<>
传递的类型。这是您要更新的数据类型。TableView
tableView.setItems()
例如,假设您有一个TableView<Person>
包含 aList
的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));
现在,当您的用户单击 aButton
或您想TableView
用新值更新 the 时,您将更新Person
对象:
person.setEmail("me@home.com");
一旦该属性发生更改,TableView
它将更新以反映新值。
这是一个高级概述/示例。如果您需要更详细的帮助,请编辑您的问题并包含一个最小的、可重现的示例,以展示您所面临的确切问题。
阅读有关如何提出一个好问题的帮助文章也是明智的。
推荐阅读
- amazon-web-services - prometheus 中 kube_metrics_server_pods_cpu 指标的单位
- python - 如何计算一个点是否落在网格内的一条线上?
- algorithm - 推广中位数算法的中位数
- single-sign-on - puppeteer 更新后,puppeteer 处理 sso 中断
- laravel - Laravel 8:如何使用邮递员处理 api 中的内部服务器错误
- git - Overleaf GitHub 同步文件大小限制
- r - 发出 wtth Cvvalue Crossford 验证 knn 从 1 到 30 10 倍
- python - 将数据框中的分类法打印为带有缩进的文本
- java - Spring Boot:如果用户尝试通过输入内容的 url 来访问内容,我如何将用户重定向到登录/注册页面
- excel - 如何将日期格式更改为仅小时