JTable使用问题,高手请进! 当然第一个了,或者用Vector那个,都比较灵活。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我也倾向选用Vector。不过也要分析一下你的表是什么样的?再看使用哪个方便 我也是拿不定,但是我觉得可以把两者结合起来就是在TableModel中使用数组(我读取的数据库表肯定要用此结构) 可以试用下面的类:class ResultsTableModel extends AbstractTableModel{ String[] columnNames=new String[0]; Object[][] dataRows; TableModelEvent e1; public void setResultSet(ResultSet results) { try { ResultSetMetaData metadata=results.getMetaData(); int columnsCount=metadata.getColumnCount(); columnNames=new String[columnsCount]; for(int i=0;i<columnsCount;i++) { columnNames[i]=metadata.getColumnLabel(i+1); } int i=1; while(results.next()) {i++; } int rowsCount=i; i=0; results.beforeFirst(); dataRows=new Object[rowsCount][columnsCount]; while(results.next()) { for(int j=0;j<columnsCount;j++) { dataRows[i][j]=results.getString(j+1); } i++; } fireTableChanged(e1); } catch(SQLException sqle) {System.err.println(sqle); } } public int getColumnCount() { return columnNames.length; } public int getRowCount() { if(dataRows==null) return 0; else return dataRows[0].length; } public Object getValueAt(int row,int column) { return ((String)(dataRows[row][column])); } public String getColumnName(int column) { return columnNames[column]==null?"no name":columnNames[column]; }} 由于我读进来的表格数据是vector,所以谢谢你提供的代码!(等着接分吧虽然不多!呵呵)columnNames = {(v.get(0)).toString()。}用这个来初始化时,结果出来的标题中多一个[],不知何故? 问一个jdb调试的问题 Swt如何按行读取大文件 对象的四种状态:强、弱、虚、空,哪种会回收?为什么? 字符编码问题(gbk,utf-8互转问题)郁闷!!! 超级白痴的问题,如何实现点一个按钮关闭退出程序? 求助:关于Component 的add方法 请教一个问题 local class 同 inner class 的困惑 ? 哪位能告诉我下载Jbuilder6.0企业版和注册码的网址?高分相送。 谁能给我具体的说说JNDI!100分送上 请问哥哥们链表,队列,堆栈的区别是什么? 请教一个小问题
不过也要分析一下你的表是什么样的?再看使用哪个方便
就是在TableModel中使用数组(我读取的数据库表肯定要用此结构)
class ResultsTableModel extends AbstractTableModel
{ String[] columnNames=new String[0];
Object[][] dataRows;
TableModelEvent e1;
public void setResultSet(ResultSet results)
{ try
{ ResultSetMetaData metadata=results.getMetaData();
int columnsCount=metadata.getColumnCount();
columnNames=new String[columnsCount];
for(int i=0;i<columnsCount;i++)
{ columnNames[i]=metadata.getColumnLabel(i+1);
}
int i=1;
while(results.next())
{i++;
}
int rowsCount=i;
i=0;
results.beforeFirst();
dataRows=new Object[rowsCount][columnsCount];
while(results.next())
{ for(int j=0;j<columnsCount;j++)
{ dataRows[i][j]=results.getString(j+1);
}
i++;
}
fireTableChanged(e1);
}
catch(SQLException sqle)
{System.err.println(sqle);
}
}
public int getColumnCount()
{ return columnNames.length;
}
public int getRowCount()
{ if(dataRows==null)
return 0;
else
return dataRows[0].length;
}
public Object getValueAt(int row,int column)
{ return ((String)(dataRows[row][column]));
}
public String getColumnName(int column)
{ return columnNames[column]==null?"no name":columnNames[column];
}
}
columnNames = {(v.get(0)).toString()。}
用这个来初始化时,结果出来的标题中多一个[],不知何故?