求助从SqlServer中读取的JTable,在frame中显示不出来

qq_35654493 2016-07-20 11:18:41
先是从数据库中读取数据生成JTable的代码 这是老师给封装好的

public JTable getTable(String sql) throws Exception {
// 设置 Statement类型的成员变量 stmt
getStatement();
// 执行数据库查询,获得结果集
rset = stmt.executeQuery(sql);

ResultSetMetaData rsmd = rset.getMetaData(); // 返回元数据对象

// 获得列数,注意这个值后面多处用到
int columns = rsmd.getColumnCount();

String columntitle[] = new String[columns]; // 创建列名数组
for (int j = 1; j <= columns; j++)
columntitle[j - 1] = rsmd.getColumnLabel(j); // 获得列名填充表格标题数组

/**
* 使用了表格模板对象来创建表格,这样的好处是可以按行来分别添加表格数据
*
* 下面语句先用获得的标题数组columntitle 定义一个表的模板,为其指定了列,该表具有对应的列
*/
DefaultTableModel tm = new DefaultTableModel(columntitle, 0);

// 根据结果集的列数创建数组,保存数据结果集中的一条记录
String results[] = new String[columns];

// 迭代遍历结果集,每次将一行记录添加到 table 中
// 这里由于使用了模板,只进行了一次遍历
while (rset.next()) {
for (int i = 0; i < columns; i++) {
// 将当前行的值存到数组,这里都用了字符串格式,注意 rset 的计数是从 1 开始
// 另外这里直接用了字段的顺序来赋值。没有用字段名的方式,这样可以和具体表结构无关
results[i] = rset.getString(i + 1);
}

// 将一行记录添加到表模板中,注意是加到了模板里,而不是表格
tm.addRow(results);
}

JTable tb = new JTable();
// 用模板填充表格,则选择表格中的数据就是模板中的
tb.setModel(tm);

// 需要自己手动关闭 ResultSet
rset.close();
// 关闭所有其它打开的数据库对象
closeAll();
// 返回表格
return tb;
}

然后是我实现的部分代码
String sql = "select * from recharg where cardid = '" + PMSMainFrame.cUser.getID()
+ "' and rechargedate between '" + date1 + "' and '" + date2 + "' order by id";
// System.out.println(sql);
try {
table = se.getTable(sql);
// System.out.println(table);
// System.out.println(table.getRowCount());
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
this.getContentPane().add(new JScrollPane(table));
this.setVisible(true);

sql 语句确定没错误 读取完了打印table的行数也可以 证明了数据确实被读取出来了 但在jtable中就是不显示
...全文
97 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
遥了老命 2016-07-20
  • 打赏
  • 举报
回复
jTable 要放到 jPanel里吧,然后JPanel 放倒 Jframe 里。 我最近也在做applet,我是这么实现出来的。 如果你懂的话帮我看下 http://bbs.csdn.net/topics/391987765 这个问题。。。

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧