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 nititeDefaultTableModel
不需要任何东西,任何关于某物的知识,关于Java
,JTable
,它的模型
,在DefaultTableModel
中都可以以同样的方式覆盖所有可访问的方法,同意使用向量
或双数组
的局限性,我的观点是,为什么要麻烦使用这些方法,为什么要使简单的事情复杂化,特别是如果它们是从默认设置来的,选项#2对我有用,非常感谢。你能解释一下为什么表格添加到屏幕后会有所不同吗?