| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2320 人关注过本帖
标题:程序用JTable列出数据库的数据,百思不得其解
只看楼主 加入收藏
dengyiming
Rank: 1
等 级:新手上路
帖 子:101
专家分:0
注 册:2004-12-17
收藏
得分:0 
我把他改成公有的可以吗?
2006-10-30 18:51
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
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());
}
你这都是一些什么啊,属于哪个方法的啊

可惜不是你,陪我到最后
2006-10-30 18:53
dengyiming
Rank: 1
等 级:新手上路
帖 子:101
专家分:0
注 册:2004-12-17
收藏
得分:0 
这些是自己定义JTable的model
要实现AbstractTableModel
2006-10-30 18:56
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
这么长的代码,不属于任何方法?

可惜不是你,陪我到最后
2006-10-30 18:58
dengyiming
Rank: 1
等 级:新手上路
帖 子:101
专家分:0
注 册:2004-12-17
收藏
得分:0 
getResult()是自己做的数据库类,可以使用SQL语句获得结果集的,我在其他模块都没有问题了
2006-10-30 18:58
dengyiming
Rank: 1
等 级:新手上路
帖 子:101
专家分:0
注 册:2004-12-17
收藏
得分:0 

我的思路是想获得 列数和行数
然后定义表格的大小
再把结果内容填进去表中

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

不是已经差不多可以了吗?


可惜不是你,陪我到最后
2006-10-30 19:12
dengyiming
Rank: 1
等 级:新手上路
帖 子:101
专家分:0
注 册:2004-12-17
收藏
得分:0 
我的思路就编写成刚刚的样子了,但是还是编译不通过啊~
2006-10-30 19:14
dengyiming
Rank: 1
等 级:新手上路
帖 子:101
专家分:0
注 册:2004-12-17
收藏
得分:0 

我已经被这个问题卡了一天了,我把rs=db.getResult(strSql);放到try外面都,反而又多一个报错了

2006-10-30 19:19
dengyiming
Rank: 1
等 级:新手上路
帖 子:101
专家分:0
注 册:2004-12-17
收藏
得分:0 

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";

public int getCol(){ //获取列
rs=db.getResult(strSql);
rsmd=rs.getMetaData();
return rsmd;
}

public int getRow(){ //获取行
rs=db.getResult(strSql);
int i=0;
try{
while(rs.next()){
i++;
}
return i;
}
catch(SQLException sqle)
{
System.out.println(sqle.toString());
}
catch(Exception ex)
{
System.out.println(ex.toString());
}
}
String[] name={"ID","姓名","手机","电话","QQ"};
String[][] data=new String[getRow()][getCol()];

try{
rs=db.getResult(strSql);
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();
}
}


我把程序改成这样,还有两个错误啊,有高手能帮忙看看吗???实现不了想要的结果啊!!很心急了

[此贴子已经被作者于2006-10-30 21:47:21编辑过]

2006-10-30 21:45
快速回复:程序用JTable列出数据库的数据,百思不得其解
数据加载中...
 
   



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

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