嗨,我正在为大学做一个项目,并在我的GUI中有一个JTable。我希望用户能够选择行而无法更改表中的数据。我使用两个数组来创建表而不是表模型。感谢
我不想使用tablemodels !!!!
答案 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,因此如果您希望单元格不可编辑,则必须覆盖该方法。
答案 1 :(得分:1)
您应该通过扩展AbstractTableModel或DefaultTableModel来定义自己的表模型。只需覆盖isCellEditable(int row, int col)
并将其返回false
。
答案 2 :(得分:1)
您需要覆盖表模型的isCellEditable()方法以始终返回false。