gpt4 book ai didi

java - 为什么 JTable 在 ChangeSelection 后不更新渲染器

转载 作者:太空宇宙 更新时间:2023-11-04 15:03:40 25 4
gpt4 key购买 nike

我在Java的JTable中使用changeSelection(int row, int column, boolean Switch, boolean Extend)。我已经做到了,当表有一个复选框列并且单击该列时,会发送一个事件来显示现在该行已选中/未选中,当用户完成时一切都很好。但是,当以编程方式完成时,会触发事件,但 JTable 不会刷新渲染器,我是否应该添加其他内容。它应该显示现在该复选框已被选中,但没有。

这是我用来以编程方式触发事件的代码。

boolean success = editCellAt(row, col); // col is a known checkbox column number
if (success) {
changeSelection(row, col, true, false);
}

这之后怎么办?事件触发,但渲染器不显示现在复选框已被选中(如果未选中),反之亦然

最佳答案

表数据存储在 TableModel 中,这是 Swing 中 JTable 的 OP MVC 模式,您需要这样做处理,因此如果您想更新表格,您需要从 AbstractTableModelfireTableCellUpdated

所以你可能想做这样的事情:

public class MyTableModel extends AbstractTableModel {

//implements the needed methods.

@Override
public void setValueAt(Object value, int rowIndex, int columnIndex) {
//code
fireTableCellUpdated(rowIndex, columnIndex);
}
}

了解更多关于AbstractTableModel的信息

关于java - 为什么 JTable 在 ChangeSelection 后不更新渲染器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22286550/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com