我应该怎么做才能编辑表格的所有单元格?例如,如果在一个单元格中写入“abc”,我想将其更改为“def”,我该怎么做?
答案 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它具有启发性