java 的 JTable,怎么把数据库查询的内容显示在表格上?
//查询全部用户信息,并且显示在表格中privatevoidbuildCenterPanel(){String[]s=newString[100];centerPanel...
//查询全部用户信息,并且显示在表格中 private void buildCenterPanel(){ String[] s=new String[100]; centerPanel=new JPanel(new BorderLayout()); centerPanel.setBorder(new LineBorder(Color.BLACK)); s=userManage.queryAll(); //定义表格对象JTable t=new JTable(5,3); //刷新表格内容 inTable(); //为表格加入滚动条 JScrollPane JScrollPane sp=new JScrollPane(t); centerPanel.add(sp,BorderLayout.CENTER); }
展开
1个回答
展开全部
public class BookModel extends AbstractTableModel{
Vector rowData=null;
Vector columnNames=null;
public BookModel(){
rowData=new Vector();
columnNames=new Vector();
columnNames.add("馆藏书号");
columnNames.add("书名");
columnNames.add("作者");
columnNames.add("ISBN");
columnNames.add("类别");
columnNames.add("出版社");
columnNames.add("价格");
columnNames.add("书架");
String sql="select * from book";
String [] paras={};
//创建SqlHelper对象
SqlHelper sh=new SqlHelper();
ResultSet rs=sh.query(sql, paras);
try {
while(rs.next()){
Vector v=new Vector();
v.add(rs.getString(1));
v.add(rs.getString(2));
v.add(rs.getString(3));
v.add(rs.getString(4));
v.add(rs.getString(5));
v.add(rs.getString(6));
v.add(rs.getString(7));
v.add(rs.getString(8));//返回查询到的值
rowData.add(v);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
sh.close();
}
}
public BookModel(String sql, String []paras){
rowData=new Vector();
columnNames=new Vector();
columnNames.add("馆藏书号");
columnNames.add("书名");
columnNames.add("作者");
columnNames.add("ISBN");
columnNames.add("类别");
columnNames.add("出版社");
columnNames.add("价格");
columnNames.add("书架");
//创建SqlHelper对象
SqlHelper sh=new SqlHelper();
ResultSet rs=sh.query(sql, paras);
try {
while(rs.next()){
Vector v=new Vector();
v.add(rs.getString(1));
v.add(rs.getString(2));
v.add(rs.getString(3));
v.add(rs.getString(4));
v.add(rs.getString(5));
v.add(rs.getString(6));
v.add(rs.getString(7));
v.add(rs.getString(8));//返回查询到的值
rowData.add(v);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
sh.close();
}
}
public BookModel(BookModel bm){
rowData=new Vector();
columnNames=new Vector();
columnNames.add("馆藏书号");
columnNames.add("书名");
columnNames.add("作者");
columnNames.add("ISBN");
columnNames.add("类别");
columnNames.add("出版社");
columnNames.add("价格");
columnNames.add("书架");
for(int i=0;i<bm.getRowCount();i++)
{
Vector v=new Vector();
for(int j=0;j<bm.getColumnCount();j++){
v.add((String)bm.getValueAt(i, j));
}
this.rowData.add(v);
}
}
//定义增,删,改模块
public boolean exeUpdate(String sql, String []paras){
//创建SqlHelper对象
SqlHelper sh=new SqlHelper();
boolean b=true;
b=sh.exeUpdate(sql, paras);
sh.close();
return b;
}
//定义查询模块
public Vector query(String sql, String paras[]){
rowData=new Vector();
columnNames=new Vector();
columnNames.add("馆藏书号");
columnNames.add("书名");
columnNames.add("作者");
columnNames.add("ISBN");
columnNames.add("类别");
columnNames.add("出版社");
columnNames.add("价格");
columnNames.add("书架");
//创建SqlHelper对象
SqlHelper sh=new SqlHelper();
ResultSet rs=sh.query(sql, paras);
try {
while(rs.next()){
Vector v=new Vector();
v.add(rs.getString(1));
v.add(rs.getString(2));
v.add(rs.getString(3));
v.add(rs.getString(4));
v.add(rs.getString(5));
v.add(rs.getString(6));
v.add(rs.getString(7));
v.add(rs.getString(8));//返回查询到的值
rowData.add(v);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
sh.close();
return rowData;
}
}
@Override
public int getColumnCount() {
// TODO Auto-generated method stub
return this.columnNames.size();
}
@Override
public int getRowCount() {
// TODO Auto-generated method stub
return this.rowData.size();
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
// TODO Auto-generated method stub
return ((Vector)this.rowData.get(rowIndex)).get(columnIndex);
}
@Override
public String getColumnName(int column) {
// TODO Auto-generated method stub
return (String)this.columnNames.get(column);
}
}
参考这个,写个继承AbstractTableModel的model类,重写下面这几个方法
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询