使用DefaultTableModel或AbstractTabelModel

解决方案 »

  1.   

    给你一个完整的例子
    import javax.swing.*;
    import java.awt.*;
    import java.sql.*;
    import javax.swing.table.*;
    import java.util.*;
    import java.awt.event.*;public class Test extends JFrame {
      private JPanel jPanel1 = new JPanel();
      private JScrollPane jScrollPane1;
      private JTable jTable;
      public Test() {
        try {
          GetTableFromDb gtfd = new GetTableFromDb();
          jTable = gtfd.getTable();
          jScrollPane1 = new JScrollPane(jTable);
          jbInit();
        }
        catch(Exception e) {
          e.printStackTrace();
        }
      }
      private void jbInit() throws Exception {
        this.setSize(500,300);
        this.getContentPane().add(jPanel1, BorderLayout.CENTER);
        jPanel1.add(jScrollPane1, BorderLayout.CENTER);
      }
      ///
      protected void processWindowEvent(WindowEvent e) {
        super.processWindowEvent(e);
        if (e.getID() == WindowEvent.WINDOW_CLOSING) {
          System.exit(0);
        }
      }
      ///
      public static void main(String[] args) {
        Test st = new Test();
        st.show();
      }
      ///
    }
    /**
     * 描述:通过查询数据库,取得显示结果数据的数据库表的JScrollPane组件显示
     * */class GetTableFromDb{
      public GetTableFromDb() {
        try {
          /*// 登陆数据库OMT,使用jdbc-odbc桥
          String dbUrl = "DbUrl";//所配置的对应数据库的数据源
          String user = "UserId";//用户
          String password = "password";//口令
          Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
          Connection con = DriverManager.getConnection(dbUrl, user, password);
          //*/
          String address = "jdbc:microsoft:sqlserver://192.168.0.24:1433";
          //驱动类型+目标数据库ip+数据库端口
          String user="sa";//数据库用户密码
          String passwd="alpha";//口令
          String database = "pubs";//目标数据库
          Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");//驱动申明
          Connection con = DriverManager.getConnection(address,user,passwd);//建立链接
          con.setCatalog(database);//确定目标数据库      Statement stmt = con.createStatement();
          String sqlCode = "SELECT top 10 au_id,phone,state FROM authors";//只提取三个字段
          ResultSet rs = stmt.executeQuery(sqlCode);
          Vector vect = new Vector();//用于存放数据记录
          vect.removeAllElements();//初始化向量对象
          while(rs.next()) {//依次读取数据结果集
            Vector rec_vector=new Vector();//从结果集中取数据放入向量rec_vector中
            rec_vector.addElement(rs.getString(1));
            rec_vector.addElement(rs.getString(2));
            rec_vector.addElement(rs.getString(3));
            vect.addElement(rec_vector);//向量rec_vector加入向量vect中
          }
          //表列标题
          String[] titleStr = {"第一列","第二列","第三列"};//表列标题设定
          Vector title = new Vector();//用于存放表列标题
          title.removeAllElements();
          for(int i=0;i<titleStr.length;i++) {
            title.addElement(titleStr[i]);
          }
          //生成表
          jTable = new JTable(vect,title);      //释放资源
          rs.close();
          stmt.close();
          con.close();
        }
        catch(Exception e) {
          System.out.println("GetTableFromDB error:" + e);
        }
      }
      public JTable getTable() {
        return jTable;
      }
      private JTable jTable;//e生成的最终表单
    }
      

  2.   

    btw:补充一点,使用odbc连接时,那个DbUrl指的是类似
    DbUrl=jdbc:odbc:TESTDB;其中TESTDB才是目标数据库的数据源