我们如何制作可编辑的表格?

时间:2009-11-24 09:41:53

标签: java jtable

我应该怎么做才能编辑表格的所有单元格?例如,如果在一个单元格中写入“abc”,我想将其更改为“def”,我该怎么做?

4 个答案:

答案 0 :(得分:1)

扩展TableModel类(通常扩展AbstractTableModel)并确保isCellEditable(int row,int col)对要编辑的单元格返回true。

您可以使用TableModelListener来监听更改。为了触发事件,您可以使用fireTableCellUpdated(int row,int col)或其他几个fireXXX方法,这些方法的实现已经存在于AbstractTableModel中。

通常,您可能希望使用自己的自定义渲染器和编辑器来获得更多控制权。有关详细信息,请参阅http://java.sun.com/docs/books/tutorial/uiswing/components/table.html

答案 1 :(得分:0)

如果您只想以编程方式进行编辑,只需更改TableModel中的值即可。 TableModel有一个setValueAt(Object, int, int)方法可以使用。

如果您希望用户获取文本输入字段来编辑值,那么您可能需要阅读editors

答案 2 :(得分:0)

要使您的单元格可由用户编辑,您的TableModel必须实现一个返回true的public boolean isCellEditable(int row, int col)方法(对于那些您想要编辑的单元格)。 JTable将通过public void setValueAt(Object value, int row, int col)方法自动更新TableModel;您可能希望使用TableModelListener来对这些更改做出反应。

答案 3 :(得分:0)

您必须在表格中指定给定的单元格是否可编辑,您可以在JTable.isCellEditable(row, col )或直接在TableModel.isCellEditable(row, col)方法中执行此操作。

这将更改用户界面并让您输入数据:

要获得值,您必须使用:JTable.setValueAt()TableModel.setValueAt()方法。

为了更好地理解如何使用表格,表格模型和其他功能,您可以遵循Java教程:How to use Tables它具有启发性