JTable,数据模型用的是实现AbstractTableModel抽象类。现在JTable已经从数据库中取出值并且已经能够正确显示,现在有需求要更改某一列的值为指定的字符串,就像数据库中存储男女为0、1,想在jtable中把0、1改成男、女。有人说用jtable的setvalueat方法,可是set后没有任何反应,又有人说要重写此方法可惜不会啊,求指教~
jtable
------解决方案--------------------
去看看我的收藏吧
------解决方案--------------------
改完之后运行下面代码试试
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
table.updateUI();
}
});
------解决方案--------------------
附一简单tableModel的实现,希望对你有帮助
public class SimpleTableModel extends AbstractTableModel {
private String[] columns;// 表头数组
private List valueObjs = new ArrayList();// 表格值列表,为Object[]对象
private boolean cellEditabled = false;// 列是否可以修改
private boolean Editabled = false;// 哪些列可以修改
public SimpleTableModel(String[] columns, List valueObjs) {
this.columns = columns;
this.valueObjs = valueObjs;
}
/**
* 获取总行数
*
* @return 总行数
*/
public int getRowCount() {
return getValueObjs().size();
}
/**
* 获取总列数
*
* @return 总列数
*/
public int getColumnCount() {
return columns.length;
}
/**
* 得到指定列的列名
*
* @param column
* 指定列
* @return 指定列的列名
*/
public String getColumnName(int column) {
return columns[column];
}
/**
* 指定单元格是否可以编辑
*
* @param row
* 行序号
* @param col
* 列序号
* @return true or false
*/
public boolean isCellEditable(int r, int c) {
// if (Editabled) {
// return (c == 0)
------解决方案--------------------
(c == 2);
// }
return false;
}
public void setCellEdit(boolean b) {
Editabled = b;
}
/**
* 设置单元格是否可以编辑
*
* @param b
* true or false
*/
public void setCellEditable(boolean b) {
cellEditabled = b;
}
/**
* 获得指定单元格的值
*
* @param row
* 行序号