| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2320 人关注过本帖
标题:程序用JTable列出数据库的数据,百思不得其解
只看楼主 加入收藏
dengyiming
Rank: 1
等 级:新手上路
帖 子:101
专家分:0
注 册:2004-12-17
收藏
 问题点数:0 回复次数:26 
程序用JTable列出数据库的数据,百思不得其解

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;
import java.util.Vector;
import javax.swing.table.*;

public class Teldirectory {

public Teldirectory () {
JFrame f=new JFrame();
TelTable tt=new TelTable();
JTable table=new JTable(tt);
table.getPreferredScrollableViewportSize(new Dimension(550,30));
JScrollPane e=new JScrollPane(table);
f.getContentPane().add(s,BorderLayout.CENTER);
f.setTitle("电话簿");
f.pack();
f.setVisible(true);

}
}

class TelTable extends AbstractTableModel{ //tableModel
DataBaseManager db=new DataBaseManager();
ResultSet rs;
ResultSetMetaData rsmd;
String strSql="select * from communication";

try{
rs=db.getResult(strSql);
rsmd=rs.getMetaData();
int dbrow=rsmd.getColumnCount(); //获取列数
int dbcol=0; //获取行数
while(rs.next()){ //不知道用什么方法统计行数
dbcol++;
}
System.out.println("cow:"+dbrow);
System.out.println("col:"+dbcol);
}
catch(SQLException sqle)
{
System.out.println(sqle.toString());
}
catch(Exception ex)
{
System.out.println(ex.toString());
}


String[] name={"ID","姓名","手机","电话","QQ"};
String[][] data=new String[dbrow][dbcol];
rs.first();
try{
int i=1;
while(rs.next()){
for(int j=0;j<name.length;j++)
data[i][j]=rs.getString(j);
i++;
}
}
catch(SQLException sqle)
{
System.out.println(sqle.toString());
}
catch(Exception ex)
{
System.out.println(ex.toString());
}

public int getColumnCount() {
return name.length;
}

public int getRowCount() {
return data.length;
}

public String getColumnName(int col) {
return name[col];
}

public Object getValueAt(int row, int col) {
return data[row][col];
}
public Class getColumnClass(int c) {
return getValueAt(0, c).getClass();
}
}

代码很多错误,我实在想不通是怎么回事,要做的事情是做一个电话本,从数据库提出数据,用表格展示,可是看了书和API,找不到想要的方法,请大家帮忙看看应该怎么修改,麻烦大家帮忙一下~

搜索更多相关主题的帖子: 数据库 百思不得其解 JTable 
2006-10-30 15:21
dengyiming
Rank: 1
等 级:新手上路
帖 子:101
专家分:0
注 册:2004-12-17
收藏
得分:0 

有高手能帮忙看下程序的错误在那里吗?
只是想做个电话本 就用表格的形式列出信息
ID 姓名 手机 电话 QQ
001 张三 136xxxxx 110 123xxxxx
002 李四 136xxxxx 120 123xxxxx
003 牛一 136xxxxx 119 123xxxxx
003 路人甲 136xxxxx 110 123xxxxx

貌似产生以上的效果。。。。。
数据库是以下 id是主键 数据库中的表名:communication
id name handset tel qq
001 张三 136xxxxx 110 123xxxxx
002 李四 136xxxxx 120 123xxxxx
003 牛一 136xxxxx 119 123xxxxx
003 路人甲 136xxxxx 110 123xxxxx

2006-10-30 17:24
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 

先把JTable的API看熟吧,JTable是javax.swing包里面比较复杂的一个


可惜不是你,陪我到最后
2006-10-30 18:12
dengyiming
Rank: 1
等 级:新手上路
帖 子:101
专家分:0
注 册:2004-12-17
收藏
得分:0 
应该怎么获得ResultSet结果的行数呢?
2006-10-30 18:15
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
rs.next()以后,然后取一个变量递加就可以了

可惜不是你,陪我到最后
2006-10-30 18:17
dengyiming
Rank: 1
等 级:新手上路
帖 子:101
专家分:0
注 册:2004-12-17
收藏
得分:0 
我的程序里面也用了这个,但是错误太多了,我很费解
冰封大哥帮忙仔细看看
2006-10-30 18:18
dengyiming
Rank: 1
等 级:新手上路
帖 子:101
专家分:0
注 册:2004-12-17
收藏
得分:0 
我用JC编译的,编译不通过,他是指向try,错误是非法的类型开始


String[] name={"ID","姓名","手机","电话","QQ"}; 这里说需要标识符
String[][] data=new String[dbrow][dbcol];

不应该是这样定义吗?
2006-10-30 18:23
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
dbrow][dbcol
你这两个数值都是在try里面定义的,出了try块,它怎么可能访问得到呢

可惜不是你,陪我到最后
2006-10-30 18:46
dengyiming
Rank: 1
等 级:新手上路
帖 子:101
专家分:0
注 册:2004-12-17
收藏
得分:0 

我改改看看,麻烦继续跟踪
是不是全部都在里面得到呢?
这样的话,我在TRY外面的就得不到数据了

2006-10-30 18:49
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
变量的作用域你应该很清楚吧

可惜不是你,陪我到最后
2006-10-30 18:50
快速回复:程序用JTable列出数据库的数据,百思不得其解
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.056820 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved