----------------解决方案--------------------------------------------------------
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编辑过]
----------------解决方案--------------------------------------------------------