我知道用tableview更简单 
但是读到table中怎么处理啊
我也成功了但是只读了第一列
TableItem item1 = new TableItem(table,SWT.NONE);
item1.setText(new String[]{rc.getString(1),rc.getString(2),rc.getString(3),rc.getString(4)});是不是应该先建立行数啊各位高手请指教.

解决方案 »

  1.   

    %JAVA_HOME%\demo\jfc\TableExample\src\TableExample.java
      

  2.   

    使用Vector
    扫描数据库,将没一条记录添加到向量中,然后在把向量添加到行向量中,在设置表格。。
      

  3.   

    //假设你已经取得了数据库的连接 connection,就从connection开始吧。
    先要写个类继承AbstractTableModel,这个model将来被用来实例化table的时候用做参数。import java.util.*;
    import javax.swing.*;
    import javax.swing.table.*;
    import java.sql.*;
    public Class Test{ public static void main(String[] args){

    try{

                               //...省略了取得connection的代码。 Statement stmt=connection.createStatement();
    ResultSet rset=
                                stmt.executeQuery("select * from selecTable");
    table.setModel(new ResultSetTableModel(rset) );
    }catch(Exception e){
    //
    }

    }}
    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 isCellEdittable(int row,int column){
    return false;
    } public String getColumnName(int column){
    return (String)(columnHeaders.elementAt(column));
    }
    }