好像不难啊,做一个数据库连接,然后Table一下就OK了~

解决方案 »

  1.   

    我的mail:[email protected]
    发给我一份吧,应该很简单.
      

  2.   

    我的mail:[email protected]
    发给我一份吧,应该很简单.
      

  3.   

    能不能用这个帮我改一下这个是一个表格程序 数据库我已经连上了谢谢import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.table.*;
    import javax.swing.event.*;
    import java.sql.*;
    import com.bruceeckel.swing.*;public class Table extends JApplet {
      Connection con;
      String url="jdbc:odbc:xu";
      
      
      JTextArea txt = new JTextArea(4, 20);
      
      // The TableModel controls all the data:
      class DataModel extends AbstractTableModel {
        Object[][] data = {
          {"one", "two", "three", "four"},
          {"five", "six", "seven", "eight"},
          {"nine", "ten", "eleven", "twelve"},
          {"1","2","3","4"},
        };
        // Prints data when table changes:
        class TML implements TableModelListener {
          public void tableChanged(TableModelEvent e){
            txt.setText(""); // Clear it
            for(int i = 0; i < data.length; i++) {
              for(int j = 0; j < data[0].length; j++)
                txt.append(data[i][j] + " ");
              txt.append("\n");
            }
          }
        }
        public DataModel() {
          addTableModelListener(new TML());
        }
        public int getColumnCount() { 
          return data[0].length; 
        }
        public int getRowCount() { 
          return data.length;
        }
        public Object getValueAt(int row, int col) {
          return data[row][col]; 
        }
        public void 
        setValueAt(Object val, int row, int col) {
          data[row][col] = val;
          // Indicate the change has happened:
          fireTableDataChanged();
        }
        public boolean 
        isCellEditable(int row, int col) { 
          return true; 
        }
      }
      public void init() {
        Container cp = getContentPane();
        JTable table = new JTable(new DataModel());
        cp.add(new JScrollPane(table));
        cp.add(BorderLayout.SOUTH, txt);
      }
      
      void DBConnect(String url)
      {
       try
       {
       String driver="sun.jdbc.odbc.JdbcOdbcDriver";
       Class.forName(driver);
       con=DriverManager.getConnection(url,"","");
       }
       catch(SQLException e)
       {
       e.printStackTrace();
       }
       catch (ClassNotFoundException e) {
           e.printStackTrace();
        }
      }
      public static void main(String[] args) {
        Console.run(new Table(), 350, 200);
      }
    } ///:~这是变成思想上的一个程序
      

  4.   

    是这样吗JTable jTable1 = new JTable();但下一步怎么做
      

  5.   

    import com.bruceeckel.swing.*;
    这个抱好像是bruceeckel的,你也有?
      

  6.   

    这个就是我要做的一部分 能帮我改改嘛?谢谢了import java.awt.*;
    import javax.swing.*;
    import java.sql.*;
    import java.util.Vector;
    import javax.swing.table.AbstractTableModel;
    import javax.swing.event.TableModelEvent; public class People  extends JFrame {
      //private JTable jTable1 = new JTable();
      private Label label1 = new Label();
      String[] columnNames = {};
      Vector rows = new Vector();
      ResultSetMetaData   metaData;
      Frame frame=new Frame("操作人员管理");
      Connection con;
      String url="jdbc:odbc:xu";
      private JTable jTable1 = new JTable();
      public People() {
        try {
          jbInit();
        }
        catch(Exception e) {
          e.printStackTrace();
        }
      }
      private void jbInit() throws Exception {
        //jTable1.setToolTipText("");
         label1.setFont(new java.awt.Font("Dialog", 1, 15));
         label1.setText("人员操作");
        //this.getContentPane().add(jTable1, BorderLayout.CENTER);
        jTable1.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
        this.getContentPane().add(label1,BorderLayout.NORTH);
        this.getContentPane().add(jTable1, BorderLayout.CENTER);
      }
      public int getColumnCount() {
            return columnNames.length;
        }
      void DBConnect(String url)
      {
        try{
          String driver="sun.jdbc.odbc.JdbcOdbc";
          Class.forName(driver);
          con=DriverManager.getConnection(url,"","");
        }
        catch(SQLException e)
        {
        }
        catch (ClassNotFoundException e) {
          e.printStackTrace();
         }
      }
      void DBClose(){
        try{
          con.close();
          }catch(SQLException e)
          {}
      }
      ResultSet queryDB(String qry){
        ResultSet rs=null;
        try{
          Statement stmt= con.createStatement ();
          metaData = rs.getMetaData();
          int numberOfColumns =  metaData.getColumnCount();
          columnNames = new String[numberOfColumns];
          rs= stmt.executeQuery(qry);
          for(int column = 0; column < numberOfColumns; column++) {
            columnNames[column] = metaData.getColumnLabel(column+1);
            }
            rows = new Vector();
               while (rs.next()) {
                   Vector newRow = new Vector();
                   for (int i = 1; i <= getColumnCount(); i++) {
                       newRow.addElement(rs.getObject(i));
                   }
                   rows.addElement(newRow);
               }
          //System.out.println("EXECUTED QUERY ---> " + qry);
         }catch(SQLException e2){
             }
        return rs;
        }
    }
    中间有很多费语句 那位大哥能帮我改改 小弟感激不尽阿
      

  7.   

    import java.util.Vector;
    import javax.swing.table.*;
    import java.sql.*;/**
     *
     * @author  Administrator
     */
    class ResultSetTableModel extends AbstractTableModel{
    protected Vector columnHeaders;
    protected Vector tableData;

    public ResultSetTableModel(ResultSet rset) throws SQLException{
                
    Vector rowData;

    ResultSetMetaData rsmd=rset.getMetaData();
    int count=rsmd.getColumnCount();
    columnHeaders=new Vector(count);
    tableData=new Vector();

    for(int i=1;i<=count;i++){
    columnHeaders.addElement(rsmd.getColumnName(i));
    }

    while(rset.next()){
    rowData=new Vector(count);
    for(int i=1;i<=count;i++){
    rowData.addElement(rset.getObject(i));
    }
    tableData.addElement(rowData);
    }
    }

    public int getColumnCount(){
    return columnHeaders.size();
    }

    public int getRowCount(){
    return tableData.size();
    }

    public Object getValueAt(int row,int column){
    Vector rowData=(Vector)(tableData.elementAt(row));
    return rowData.elementAt(column);
    }

    public boolean isCellEditable(int row, int column){
    return false;
    }

    public String getColumnName(int column){
    return (String)(columnHeaders.elementAt(column));
    }
    }上面的代码是通用的只要你给他一个resultset就好了(你应该已经拿到纪录集了吧,因为你已经连接好数据库了)然后用下面的代码设置JTable就可以了try{
        JTable.setModel(new ResultSetTableModel(rs));
    }catch(Exception e){
        e.printStackTrace();
    }
      

  8.   

    我刚找到一段不错的代码,已经运行过了
    你看一下吧
    import javax.swing.JTable;
    import javax.swing.JScrollPane;
    import javax.swing.JPanel;
    import javax.swing.JFrame;
    import java.awt.*;
    import java.awt.event.*;public class SimpleTableDemo extends JFrame {
        private boolean DEBUG = true;    public SimpleTableDemo() {
            super("SimpleTableDemo");        Object[][] data = {
                {"Mary", "Campione", 
                 "Snowboarding", new Integer(5), new Boolean(false)},
                {"Alison", "Huml", 
                 "Rowing", new Integer(3), new Boolean(true)},
                {"Kathy", "Walrath",
                 "Chasing toddlers", new Integer(2), new Boolean(false)},
                {"Mark", "Andrews",
                 "Speed reading", new Integer(20), new Boolean(true)},
                {"Angela", "Lih",
                 "Teaching high school", new Integer(4), new Boolean(false)}
            };        String[] columnNames = {"First Name", 
                                    "Last Name",
                                    "Sport",
                                    "# of Years",
                                    "Vegetarian"};        final JTable table = new JTable(data, columnNames);
            table.setPreferredScrollableViewportSize(new Dimension(500, 70));        if (DEBUG) {
                table.addMouseListener(new MouseAdapter() {
                    public void mouseClicked(MouseEvent e) {
                        printDebugData(table);
                    }
                });
            }        //Create the scroll pane and add the table to it. 
            JScrollPane scrollPane = new JScrollPane(table);        //Add the scroll pane to this window.
            getContentPane().add(scrollPane, BorderLayout.CENTER);        addWindowListener(new WindowAdapter() {
                public void windowClosing(WindowEvent e) {
                    System.exit(0);
                }
            });
        }    private void printDebugData(JTable table) {
            int numRows = table.getRowCount();
            int numCols = table.getColumnCount();
            javax.swing.table.TableModel model = table.getModel();        System.out.println("Value of data: ");
            for (int i=0; i < numRows; i++) {
                System.out.print("    row " + i + ":");
                for (int j=0; j < numCols; j++) {
                    System.out.print("  " + model.getValueAt(i, j));
                }
                System.out.println();
            }
            System.out.println("--------------------------");
        }    public static void main(String[] args) {
            SimpleTableDemo frame = new SimpleTableDemo();
            frame.pack();
            frame.setVisible(true);
        }
    }
      

  9.   

    我把这个程序 改了一下 能够编译 但运行起来 出现异常 我已经知道什么毛病
    但不知道怎么改啊 我把错误指出来 大家帮我看看
    import java.awt.*;
    import java.awt.event.*;
    import java.sql.*;
    import javax.swing.*;
    import java.util.Vector;
    import javax.swing.table.*;
    class Login extends Frame 
    {    
    Connection con;
    String url = "jdbc:odbc:Xu";
    ResultSetTableModel rst;
    JTable table=new JTable(rst.columnHeaders,rst.tableData);
             //错误就在上面我给这个表富了两个值是下面类中的 一个是表的字段
            //一条是纪录 但为什么不对呢 大家能帮我改改吗 我想这个地方改了别的地方也应//该没问题了
    Login(){
      setLayout(new FlowLayout());
          
      try{
      DBConnect(url);
      ResultSet rs=queryDB("SELECT * FROM Publishers");
      rst=new ResultSetTableModel(rs);
       
      }catch(SQLException e1){
      }
      
      add(table);
          addWindowListener(new WindowAdapter(){
         public void windowClosing(WindowEvent e)
       { DBClose();
    System.exit(0);
       }
      });
      setSize(300,300);
      setVisible(true);
    } void DBConnect(String url){
    try {
            
          
           String driver ="sun.jdbc.odbc.JdbcOdbcDriver";
           Class.forName(driver);
          System.out.println("LOADED DRIVER  ---> " + driver);        
           con =
           DriverManager.getConnection (url, "", "");
           System.out.println("CONNECTED TO   ---> "+ url);
    }catch (SQLException e) {
           e.printStackTrace();
         } catch (ClassNotFoundException e) {
           e.printStackTrace();
         }
    }
         
        void DBClose(){
    try{
    con.close();
    }catch(SQLException e)
        {
    }
    }
    ResultSet queryDB(String qry){
    ResultSet rs=null;

    try{
     Statement stmt= con.createStatement ();
            
               rs= stmt.executeQuery(qry);
            System.out.println("EXECUTED QUERY ---> " + qry);
            }catch(SQLException e2){
     }
     return rs;
    }
    public static void main(String[] args) 
    {
    Login login=new Login();
    }}
    class ResultSetTableModel extends AbstractTableModel{
    Vector columnHeaders;
        Vector tableData;

    public ResultSetTableModel(ResultSet rs) throws SQLException{
                
    Vector rowData;

    ResultSetMetaData rsmd=rs.getMetaData();
    int count=rsmd.getColumnCount();
    columnHeaders=new Vector(count);
    tableData=new Vector();

    for(int i=1;i<=count;i++){
    columnHeaders.addElement(rsmd.getColumnName(i));
    }

    while(rs.next()){
    rowData=new Vector(count);
    for(int i=1;i<=count;i++){
    rowData.addElement(rs.getObject(i));
    }
    tableData.addElement(rowData);
    }
    }

    public int getColumnCount(){
    return columnHeaders.size();
    }

    public int getRowCount(){
    return tableData.size();
    }

    public Object getValueAt(int row,int column){
    Vector rowData=(Vector)(tableData.elementAt(row));
    return rowData.elementAt(column);
    }

    public boolean isCellEditable(int row, int column){
    return false;
    }

    public String getColumnName(int column){
    return (String)(columnHeaders.elementAt(column));
    }
    }
      

  10.   

    呵呵
    到现在才看到不好意思拉我给你的那个类需要一个打开的纪录集,也就是说你的记录集必须有下面这样的一个过程Statement stmt=conn.createStatement();
    ResultSet rs=stmt.executeQuery("查询语句");这样的查询传给ResultSetTableModel才有用的
    另外你的
    JTable table=new JTable(rst.columnHeaders,rst.tableData);
    这一行代码要修改层下面这样
    JTable table=new JTable();
    table.setModel(new ResultSetTableModel(rs));这样问题基本就解决了
      

  11.   

    请看看 我把他家在了上面 但出现错误 说无法解析符号
    为什么import java.awt.*;
    import java.awt.event.*;
    import java.sql.*;
    import javax.swing.*;
    import java.util.Vector;
    import javax.swing.table.*;
    class Login extends Frame 
    {    
    Connection con;
    String url = "jdbc:odbc:Xu";
    ResultSet rs;
    ResultSetTableModel rst;
    JTable table=new JTable();
    //table.setModel(new ResultSetTableModel(rs));
    //就是上面的这个地方 我有什么错误吗
    Login(){
      setLayout(new FlowLayout());
          
      try{
      DBConnect(url);
          rs=queryDB("SELECT * FROM Publishers");
          
      //rst=new ResultSetTableModel(rs);
       
      }catch(SQLException e1){
      }
      
      add(table);
          addWindowListener(new WindowAdapter(){
         public void windowClosing(WindowEvent e)
       { DBClose();
    System.exit(0);
       }
      });
      setSize(300,300);
      setVisible(true);
    } void DBConnect(String url){
    try {
            
          
           String driver ="sun.jdbc.odbc.JdbcOdbcDriver";
           Class.forName(driver);
          System.out.println("LOADED DRIVER  ---> " + driver);        
           con =
           DriverManager.getConnection (url, "", "");
           System.out.println("CONNECTED TO   ---> "+ url);
    }catch (SQLException e) {
           e.printStackTrace();
         } catch (ClassNotFoundException e) {
           e.printStackTrace();
         }
    }
         
        void DBClose(){
    try{
    con.close();
    }catch(SQLException e)
        {
    }
    }
    ResultSet queryDB(String qry){
    ResultSet rs=null;

    try{
     Statement stmt= con.createStatement ();
            
              rs= stmt.executeQuery(qry);
              
            //System.out.println("EXECUTED QUERY ---> " + qry);
            }catch(SQLException e2){
     }
     return rs;
    }
    public static void main(String[] args) 
    {
    Login login=new Login();

    }}
    class ResultSetTableModel extends AbstractTableModel{
    Vector columnHeaders;
        Vector tableData;

    public ResultSetTableModel(ResultSet rs) throws SQLException{
                
    Vector rowData;

    ResultSetMetaData rsmd=rs.getMetaData();
    int count=rsmd.getColumnCount();
    columnHeaders=new Vector(count);
    tableData=new Vector();

    for(int i=1;i<=count;i++){
    columnHeaders.addElement(rsmd.getColumnName(i));
    }

    while(rs.next()){
    rowData=new Vector(count);
    for(int i=1;i<=count;i++){
    rowData.addElement(rs.getObject(i));
    }
    tableData.addElement(rowData);
    }
    }

    public int getColumnCount(){
    return columnHeaders.size();
    }

    public int getRowCount(){
    return tableData.size();
    }

    public Object getValueAt(int row,int column){
    Vector rowData=(Vector)(tableData.elementAt(row));
    return rowData.elementAt(column);
    }

    public boolean isCellEditable(int row, int column){
    return false;
    }

    public String getColumnName(int column){
    return (String)(columnHeaders.elementAt(column));
    }
    }