JTable行选择而不更改数据

时间:2011-03-01 15:38:44

标签: java swing jtable row

嗨,我正在为大学做一个项目,并在我的GUI中有一个JTable。我希望用户能够选择行而无法更改表中的数据。我使用两个数组来创建表而不是表模型。感谢

我不想使用tablemodels !!!!

3 个答案:

答案 0 :(得分:3)

您可以在表模型中实现isEditable()方法并返回false,并且您的表将无法编辑:

public class MyTableModel extends AbstractTableModel{
 public void isEditable(){
   return false;
 }
}

然后你有一个表,你将它的模型设置为MyTableModel对象,例如。

JTable table = new JTable();
table.setModel(new MyTableModel());

额外信息:

AbstractTableModel.isCellEditable(int,int)默认返回false,因此您无需覆盖它以获得该行为。

默认情况下,该方法的DefaultTableModel实现返回true,因此如果您希望单元格不可编辑,则必须覆盖该方法。

Resource of this answer.

答案 1 :(得分:1)

您应该通过扩展AbstractTableModel或DefaultTableModel来定义自己的表模型。只需覆盖isCellEditable(int row, int col)并将其返回false

答案 2 :(得分:1)

您需要覆盖表模型的isCellEditable()方法以始终返回false。