gpt4 book ai didi

java - 当单元格类型不是字符串时,JTable 中的单元格不可编辑?

转载 作者:行者123 更新时间:2023-11-30 05:52:43 25 4
gpt4 key购买 nike

我有自己的TableModel实现旨在显示来自 SQL 的数据数据库。我已经覆盖了所有必要的方法,使用 String 数组作为列名,arraylist<Object[]>用于数据和 Class<?>[]可以从数据库中检索的所有不同类型的数组。我还有一个 boolean 数组,它指示哪些列是可编辑的,哪些不是。在我将表中的所有内容都存储为对象并且尚未实现类型部分之前,它运行良好。现在我已经将类型添加到模型中,我无法编辑任何 int 类型的列,即使该列在我的 boolean 数组中是可编辑的。我已经覆盖了 isEditable()方法简单地从该 boolean 数组返回值,并在有问题的 into 列上返回 true - 但它仍然不可编辑。这是定义行为还是有问题?恐怕我目前无法发布代码,因为我正在使用手机,我的笔记本电脑目前没有互联网连接,而且要到本周末才会这样。我搜索过,但谷歌只显示了很多关于使单元格可编辑或不可编辑的问题,而不是为什么你不能编辑 int 列。编辑:这是一个显示我的问题的 pastebin:http://pastebin.com/cYJnyyqy

使用 jdk7并且只有字符串列是可编辑的,即使 isEditable()对所有列返回 true。

最佳答案

嗯。我从未对 getColumnClass() 使用原始类型(例如 int.class)。我一直使用“包装”类型,例如Integer.class .

尝试更改您的 Class<?>[] types使用包装类而不是原语。例如

 Class<?>[] types = {
String.class,
Character.class,
Integer.class,
...

这可能是 Swing 找到正确的 Renderer/TableCellEditor 所必需的。但我不确定...

关于java - 当单元格类型不是字符串时,JTable 中的单元格不可编辑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11383756/

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