关于自定义TableModel的问题 我定义的TableModel在getValueAt里直接返回结果集中的数据,没有用Vector和Object存储数据,运行没什么问题,但是对鼠标选中某一列的响应有问题,好像不能及时刷新,显示很有问题。那位有什么好办法吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不太明白你的意思这里有个例子,看能不能对你有帮助http://community.csdn.net/Expert/topic/4869/4869338.xml?temp=.6329462 /** * <p>Title: 自己定义的表格</p> * <p>Description: 继承AbstractTableModel类,实现自己的表格</p> * <p>Copyright: Copyright (c) 2003</p> * <p>Filename: MyTableDemo.java</p> * @version 1.0 *//** * <p>Title: 定义自己的表格模式</p> * <p>Description: 通过继承AbstractTableModel类来定义自己的表格模式</p> */public class TitleTableModel extends AbstractTableModel { //定义表头 final String columnNames[] = { "序号", "重要性", "标题", "链接", "网址", "文件时间", "跟踪时间", "文件大小", "文件类型", "摘要", "关键字"}; public ResultSet rs = null; /** *<br>方法说明:继承AbstractTableModel必须实现的方法 *<br>输入参数: *<br>返回类型:int 列数 */ public int getColumnCount() { return columnNames.length; } /** *<br>方法说明:继承AbstractTableModel必须实现的方法 *<br>输入参数: *<br>返回类型:int 列数 */ public int getRowCount() { if (rs == null) { return 0; } try { int i = 1; if (!rs.first()) { return 0; } while (rs.next()) { i++; } return i; } catch (SQLException ex) { return 0; } } /** *<br>方法说明:继承AbstractTableModel必须实现的方法 *<br>输入参数: *<br>返回类型:String 列名 */ public String getColumnName(int col) { return columnNames[col]; } /** *<br>方法说明:继承AbstractTableModel必须实现的方法,获取表格中的数据 *<br>输入参数:int row 行数 *<br>输入参数:int col 列数 *<br>返回类型:Object 数据对象 */ public Object getValueAt(int row, int col) { if (rs == null) { return null; } try { if (rs.absolute(row + 1)) { String strColumn = getColumnName(col); return rs.getObject(strColumn); } } catch (SQLException ex) { System.out.print(ex.toString() + row + " " + col); } return null; } } 我感觉可能是每次getValueAt都移动rs的指针,使得开销太大,响应不及时。没办法确定问题的原因,真的很难办啊。 dongle2001(dl) 我感觉可能是每次getValueAt都移动rs的指针,使得开销太大,响应不及时。没办法确定问题的原因,真的很难办啊。----------------------如果你读一下DefaultTableModel的代码的话,会发现你有件事忘做了,通知JTable更新. 几个枚举类 100分——很简单的程序,出了点错误,请大家帮帮忙! 关于一个IPv4数据报转换成IPv6的模拟程序 什么是数据库的死索? 特别紧急!在画板上画一个矩形,如何根据角度动态的求矩形中心点到矩形的距离。小弟先行谢过了!!! mysql-connector-java-3.1.8-bin.jar 的连接问题 怎样给数据库中的自增字段赋值?????? 对BT感兴趣的请进 求书!! 怎样设置JButton的大小,形状(只是要它凸起),位置,颜色? 关于栈和堆 这是什么错误啊!刚学不知道!是不是少了哪些包?
http://community.csdn.net/Expert/topic/4869/4869338.xml?temp=.6329462
/**
* <p>Title: 自己定义的表格</p>
* <p>Description: 继承AbstractTableModel类,实现自己的表格</p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Filename: MyTableDemo.java</p>
* @version 1.0
*/
/**
* <p>Title: 定义自己的表格模式</p>
* <p>Description: 通过继承AbstractTableModel类来定义自己的表格模式</p>
*/
public class TitleTableModel
extends AbstractTableModel {
//定义表头
final String columnNames[] = {
"序号", "重要性", "标题", "链接", "网址", "文件时间", "跟踪时间", "文件大小", "文件类型", "摘要",
"关键字"};
public ResultSet rs = null;
/**
*<br>方法说明:继承AbstractTableModel必须实现的方法
*<br>输入参数:
*<br>返回类型:int 列数
*/
public int getColumnCount() {
return columnNames.length;
} /**
*<br>方法说明:继承AbstractTableModel必须实现的方法
*<br>输入参数:
*<br>返回类型:int 列数
*/
public int getRowCount() {
if (rs == null) {
return 0;
}
try {
int i = 1;
if (!rs.first()) {
return 0;
}
while (rs.next()) {
i++;
}
return i;
}
catch (SQLException ex) {
return 0;
}
} /**
*<br>方法说明:继承AbstractTableModel必须实现的方法
*<br>输入参数:
*<br>返回类型:String 列名
*/
public String getColumnName(int col) {
return columnNames[col];
} /**
*<br>方法说明:继承AbstractTableModel必须实现的方法,获取表格中的数据
*<br>输入参数:int row 行数
*<br>输入参数:int col 列数
*<br>返回类型:Object 数据对象
*/
public Object getValueAt(int row, int col) {
if (rs == null) {
return null;
}
try {
if (rs.absolute(row + 1)) {
String strColumn = getColumnName(col);
return rs.getObject(strColumn);
}
}
catch (SQLException ex) {
System.out.print(ex.toString() + row + " " + col);
}
return null;
}
}
我感觉可能是每次getValueAt都移动rs的指针,使得开销太大,响应不及时。没办法确定问题的原因,真的很难办啊。
----------------------
如果你读一下DefaultTableModel的代码的话,会发现你有件事忘做了,通知JTable更新.