JTable实现Integer和Double数据类型的列,只能输入符合标准的值
如下图,该列的数据类型为Integer类,则不能输入Double和字符串类型的内容
如何设定表格的列的类型?
public DefaultTableModel tableModelInstance() { return new DefaultTableModel() { private static final long serialVersionUID = 1L; @Override //返回的数据类型是什么,代表该列是什么类型 // 重写该方法可使排序根据class的类型排序 public Class<?> getColumnClass(int column) { if ((column >= 0) && (column < getColumnCount())) { if (getRowCount() > 1) { Object valueAt = getValueAt(0, column); return valueAt == null ? Object.class : valueAt.getClass(); } } return super.getColumnClass(column); } }; }
tableModel = tableModelInstance(); for (int i = 0; i < columnName.size(); i++) { String s = columnName.get(i); tableModel.addColumn(s); columnMap.put(s, i); } table.setModel(tableModel);