java tableview更正一行,如何更新javafx TableView值

本文探讨了在JavaFX中实现表格视图时遇到的尴尬问题,如单元格数据丢失焦点问题,以及如何艰难地实现基本的复制/粘贴功能,通过解析和设置可观察属性来完成。分享了一个处理不同类型ObservableValue的代码片段,并强调了使用POJO和相应属性的重要性。
摘要由CSDN通过智能技术生成

我感觉到你了 . 表是应用程序中最常见的事情之一,它在JavaFX中实现的方式最令人尴尬(当您更改单元格时丢失数据的焦点错误仍未解决)并且在现实世界环境中绝对无法使用 . 难怪他们称之为TableVIEW,因为你几乎无法做任何不同的事情 .

我尝试实现一个简单的复制/粘贴功能,您可以将一次单元格的内容复制到另一个单元格 . 这是不容易的 . 但是,我以一种获取单元格属性并调用set方法的方式解决了它 .

摘抄:

if( observableValue instanceof DoubleProperty) {

try {

double value = numberFormatter.parse(clipboardCellContent).doubleValue();

((DoubleProperty) observableValue).set(value);

} catch (ParseException e) {

e.printStackTrace();

}

}

else if( observableValue instanceof IntegerProperty) {

try {

int value = NumberFormat.getInstance().parse(clipboardCellContent).intValue();

((IntegerProperty) observableValue).set(value);

} catch (ParseException e) {

e.printStackTrace();

}

}

else if( observableValue instanceof StringProperty) {

((StringProperty) observableValue).set(clipboardCellContent);

} else {

System.out.println("Unsupported observable value: " + observableValue);

}

您可以从this gist获取完整代码 . 它可能会让您了解如何解决此问题 .

关于POJO:您必须使用属性 . 关于其他类型,请使用正确的类型,DoubleProperty,ObjectProperty等 .

并且它是可观察的,一旦您更改数据,tableview将更新 .

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值