java 的 JTable,怎么把数据库查询的内容显示在表格上?

//查询全部用户信息,并且显示在表格中 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); }

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类,重写下面这几个方法

温馨提示:答案为网友推荐,仅供参考
相似回答