gpt4 book ai didi

java - 添加新列时 CellRenderer 和编辑器重置

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:32:36 27 4
gpt4 key购买 nike

我有一个表格,我的列在其中动态扩展。最初我将表模型设置为有 5 列,因为基本信息有 5 列。在 5 列中,第 2 列和第 3 列是按钮(实际上它们是按钮形式的超链接),这意味着我已将第 2 列和第 3 列设置为拥有自己的渲染器和编辑器。

table.getColumnModel().getColumn(2).setCellRender(new MyCellRender());
table.getColumnModel().getColumn(2).setCellEditor(new MyCellEditor(table));
//more code for column 3 initializatation

我的问题是有时一行可能有超过 5 个列,所以每次我需要在模型中添加更多列时,我都会通过添加新列来检查它。我用

model.addColumn("ColumnName");

添加新列。问题是每次我添加大于初始行的新行时,第 2 列和第 3 列上的渲染器和编辑器都会重置/消失并呈现为默认值。我需要什么才能保留第 2 列和第 3 列。顺便说一句,第 2 列和第 3 列是唯一始终呈现为按钮的列。

最佳答案

您可以尝试覆盖 JTable 中的 createDefaultColumnsFromModel 并再次设置您的特殊编辑器/渲染器。当您修改模型时,如果 getAutoCreateColumnsFromModel 为真,JTable 将重新创建 columnModel。当您添加新专栏时,我认为您需要保持这一点。

public void createDefaultColumnsFromModel() {
super.createDefaultColumnsFromModel();
getColumnModel().getColumn(2).setCellRender(new MyCellRender());
getColumnModel().getColumn(2).setCellEditor(new MyCellEditor(this));
}

关于java - 添加新列时 CellRenderer 和编辑器重置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8296522/

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