我搞了几天,对网上的代码的改写
import javax.swing.*;
import javax.swing.table.*;
import javax.swing.event.*;
import java.io.*;
import java.util.*;
import java.sql.*;/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2005</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
public class DBTableModel
extends AbstractTableModel {
protected Vector data;
protected Vector columnNames;
protected String dataString;
private ResultSet rs;
private Statement stmt;
private ResultSetMetaData rsmd; public DBTableModel(ResultSet rsData) {
rs = rsData;
initVectors();
} public DBTableModel(ResultSet rsData, Vector ocolumnNames) {
//可以使用外边递进来的列标题
columnNames = ocolumnNames;
rs = rsData;
initVectors();
} public void initVectors() {
String aLine;
if (data == null) {
data = new Vector();
}
else {
data.clear();
}
try {
rsmd = rs.getMetaData();
}
catch (Exception e) {
System.out.println(e);
}
if (columnNames == null) {
columnNames = new Vector();
try {
// extract column names for (int i = 1; i <= rsmd.getColumnCount(); i++) {
columnNames.addElement(rsmd.getColumnName(i));
}
}
catch (Exception e) {
System.out.println(e);
}
} // extract data
try {
while (rs.next()) {
for (int i = 1; i <= rsmd.getColumnCount(); i++) {
if (rs.getObject(i) != null) {
data.addElement(rs.getObject(i).toString());
}
else {
data.addElement("");
}
}
}
}
catch (Exception e) {
System.out.println(e);
}
} public int getRowCount() {
return data.size() / getColumnCount();
} public int getColumnCount() {
return columnNames.size();
} public String getColumnName(int columnIndex) {
String colName = "";
try {
if (columnIndex <= getColumnCount()) {
colName = (String) columnNames.elementAt(columnIndex);
}
}
catch (Exception r) {
System.out.println(r);
}
return colName;
} public Class getColumnClass(int columnIndex) {
return String.class;
} public boolean isCellEditable(int rowIndex, int columnIndex) {
return false;
} public Object getValueAt(int rowIndex, int columnIndex) {
try {
int i = rowIndex * getColumnCount() + columnIndex;
return (String) data.elementAt(i);
}
catch (Exception r) {
return "";
}
} public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
try {
int i = rowIndex * getColumnCount() + columnIndex;
data.setElementAt(aValue, i);
}
catch (Exception r) { } }}
import javax.swing.*;
import javax.swing.table.*;
import javax.swing.event.*;
import java.io.*;
import java.util.*;
import java.sql.*;/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2005</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
public class DBTableModel
extends AbstractTableModel {
protected Vector data;
protected Vector columnNames;
protected String dataString;
private ResultSet rs;
private Statement stmt;
private ResultSetMetaData rsmd; public DBTableModel(ResultSet rsData) {
rs = rsData;
initVectors();
} public DBTableModel(ResultSet rsData, Vector ocolumnNames) {
//可以使用外边递进来的列标题
columnNames = ocolumnNames;
rs = rsData;
initVectors();
} public void initVectors() {
String aLine;
if (data == null) {
data = new Vector();
}
else {
data.clear();
}
try {
rsmd = rs.getMetaData();
}
catch (Exception e) {
System.out.println(e);
}
if (columnNames == null) {
columnNames = new Vector();
try {
// extract column names for (int i = 1; i <= rsmd.getColumnCount(); i++) {
columnNames.addElement(rsmd.getColumnName(i));
}
}
catch (Exception e) {
System.out.println(e);
}
} // extract data
try {
while (rs.next()) {
for (int i = 1; i <= rsmd.getColumnCount(); i++) {
if (rs.getObject(i) != null) {
data.addElement(rs.getObject(i).toString());
}
else {
data.addElement("");
}
}
}
}
catch (Exception e) {
System.out.println(e);
}
} public int getRowCount() {
return data.size() / getColumnCount();
} public int getColumnCount() {
return columnNames.size();
} public String getColumnName(int columnIndex) {
String colName = "";
try {
if (columnIndex <= getColumnCount()) {
colName = (String) columnNames.elementAt(columnIndex);
}
}
catch (Exception r) {
System.out.println(r);
}
return colName;
} public Class getColumnClass(int columnIndex) {
return String.class;
} public boolean isCellEditable(int rowIndex, int columnIndex) {
return false;
} public Object getValueAt(int rowIndex, int columnIndex) {
try {
int i = rowIndex * getColumnCount() + columnIndex;
return (String) data.elementAt(i);
}
catch (Exception r) {
return "";
}
} public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
try {
int i = rowIndex * getColumnCount() + columnIndex;
data.setElementAt(aValue, i);
}
catch (Exception r) { } }}
解决方案 »
- struts2中,在tomcat启动时候总是出现严重: “严重: Exception starting filter str”错误,求高手帮忙解答下是怎么原因?
- JavaEE 项目(SSH框架)
- 问大家一个struts2文件上传的问题
- 请教一个,struts2中如何判断session里的值,我这么写为什么不对呢?
- 精通ssh得来,急啊 在线等 谢谢帮忙了
- 再问数据库连接问题
- java label 设置背景图片问题.无法显示.求解释.代码如下
- 第2个问题
- 怎样才能获得远程调用webservice的IP地址
- 如何判断List<String[]>中是否包含String[]呢?
- Eclips 结合CVS 测试struts程序中的调试问题(急)
- CVS版本控制中遇到的难题,求助!
DBTableModel dm = new DBTableModel(rs);
jtFlowDetail.setModel(dm);
多谢了
界面用flash或者flex做,数据直接用一个持久层来处理。用java写界面浪费时间还不是很好看