Java 带有AbstractTableModel的JTable不会在单击时进行编辑

Java 带有AbstractTableModel的JTable不会在单击时进行编辑,java,swing,jtable,abstracttablemodel,Java,Swing,Jtable,Abstracttablemodel,我正在为一个应该能够处理用户编辑的Applet构建一个JTable。因此,我扩展了AbstractTableModel,并成功地用数据填充了表。我的问题是,一旦填充了数据,单击表就不允许进行编辑 我已经重写了isCellEditable()方法,使其始终返回true,并在每次调用该方法时向控制台打印一条消息。但是,当我与表交互时(通过在任何给定的单个单元格上连续单击任意数量的鼠标),该单元格不会变得可编辑,并且isCellEditable()也不会被调用 我的问题是,编辑特定单元格需要调用什么?

我正在为一个应该能够处理用户编辑的
Applet
构建一个
JTable
。因此,我扩展了
AbstractTableModel
,并成功地用数据填充了表。我的问题是,一旦填充了数据,单击表就不允许进行编辑

我已经重写了
isCellEditable()
方法,使其始终
返回true
,并在每次调用该方法时向控制台打印一条消息。但是,当我与表交互时(通过在任何给定的单个单元格上连续单击任意数量的鼠标),该单元格不会变得可编辑,并且
isCellEditable()
也不会被调用


我的问题是,编辑特定单元格需要调用什么?我为帖子中缺少代码而道歉,但代码是高度专有的,我的上级对发布任何代码都非常严格。

1.您是否已将
AbstractTableModel
添加到屏幕上已经可见的
JTable

2.如果是,则代码行不是
isCellEditable()
,但应该是

@Override
public boolean isCellEditable(int row, int column) {
    return true;
}

3.我建议使用
DefaultTableModel
而不是覆盖
AbstractTableModel

所需的方法。为了保护您上司的利益,请编辑您的问题,以包括显示您描述的问题的方法。可以在中找到几个适用于起点的示例,这说明了一个可编辑的
AbstractTableModel
。您可以将其与您的实现进行比较。

hmm。如果没有看到任何代码,就很难判断出哪里出了问题。我真的不明白为什么您推荐DefaultTableModel而不是AbstractTableModel。它需要在域对象和(gasp)向量之间复制信息,并在可编辑的另一个方向上执行相同的操作。为什么不直接使用域对象呢。更不用说混乱了,嗯。@JB nitite
DefaultTableModel
不需要任何东西,任何关于
某物的知识,关于
Java
JTable
,它的
模型
,在
DefaultTableModel
中都可以以同样的方式覆盖所有可访问的方法,同意使用
向量
双数组
的局限性,我的观点是,为什么要麻烦使用这些方法,为什么要使简单的事情复杂化,特别是如果它们是从默认设置来的,选项#2对我有用,非常感谢。你能解释一下为什么表格添加到屏幕后会有所不同吗?