当前位置: 代码迷 >> Java相关 >> 程序用JTable列出数据库的数据,百思不得其解
  详细解决方案

程序用JTable列出数据库的数据,百思不得其解

热度:301   发布时间:2006-10-30 18:51:55.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());
}
你这都是一些什么啊,属于哪个方法的啊

----------------解决方案--------------------------------------------------------
这些是自己定义JTable的model
要实现AbstractTableModel
----------------解决方案--------------------------------------------------------
这么长的代码,不属于任何方法?
----------------解决方案--------------------------------------------------------
getResult()是自己做的数据库类,可以使用SQL语句获得结果集的,我在其他模块都没有问题了
----------------解决方案--------------------------------------------------------

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


----------------解决方案--------------------------------------------------------

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


----------------解决方案--------------------------------------------------------
我的思路就编写成刚刚的样子了,但是还是编译不通过啊~
----------------解决方案--------------------------------------------------------

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


----------------解决方案--------------------------------------------------------

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编辑过]


----------------解决方案--------------------------------------------------------
  相关解决方案