启动类:import java.awt.*;
import javax.swing.*;
import java.sql.*;
import java.awt.event.*;
import javax.swing.table.*;
import java.util.*;
class Demo extends JFrame implements ActionListener
{
private ResultSet rs;
JButton jb=null;
JPanel jp1,jp2;
JScrollPane jsp=new JScrollPane();
JTable jtb;
Vector row=new Vector();
Vector col=new Vector();
DefaultTableModel dtm=new DefaultTableModel();
public Demo()
{
   jtb=new JTable(dtm);
  jtb.setPreferredScrollableViewportSize(new Dimension(200,200));
   jsp.add(jtb);
   jb=new JButton("ok");
   jb.addActionListener(this);
   jp1=new JPanel();
   jp2=new JPanel();
   jp2.setPreferredSize(new Dimension(300,300));
   jsp.setPreferredSize(new Dimension(300,300));
   jp2.setBackground(Color.red);
    jp2.setLayout(new BorderLayout());
    jp1.add(jb);
   this.add(jp1,"North");
   this.add(jp2);
   this.add(jsp);
   this.setSize(400,500);
   this.show();
       
    
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==jb)
{   
  ConDatabase base=new ConDatabase("select * from mer");
      rs=base.getrs();
   try 
   {
       ResultSetMetaData rsmd=rs.getMetaData();
       for (int i = 1; i<=rsmd.getColumnCount(); i++)
       {
         col.add(rsmd.getColumnName(i));
       }
       while(rs.next())
       {
         Vector v=new Vector();
         for (int i = 1; i<=6; i++)
         {
          v.add(rs.getString(i));
         }
         row.add(v);
       }
       dtm.setDataVector(row,col);
       System.out.println ("ddddddddd");     
       }
      catch (Exception ex)
      {
      System.out.println (ex.getMessage());
      }    
    }
}


public static void main(String[] args)
    {
      new Demo();
      
      
    }
}//数据库联接的类:
import java.sql.*;public class ConDatabase
{
    ResultSet rs;
public ConDatabase(String str)
{
try 
{
   Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
   java.sql.Connection conn = java.sql.DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=mer","sa","");
   java.sql.Statement sta = conn.createStatement();
    rs=sta.executeQuery(str);
   
    }
    catch (Exception ex) 
    {
     System.out.println (ex.getMessage());
    }
}
public ResultSet getrs()
{
return rs;
}
}//怎么显示不出来啊,谢谢了!在线等

解决方案 »

  1.   

    import java.awt.*;
    import javax.swing.*;
    import java.sql.*;
    import java.awt.event.*;
    import javax.swing.table.*;
    import java.util.*;class Demo extends JFrame implements ActionListener {
        private ResultSet rs;
        JButton jb=null;
        JPanel jp1,jp2;
        JScrollPane jsp=new JScrollPane();
        JTable jtb;
        Vector row=new Vector();
        Vector col=new Vector();
        DefaultTableModel dtm=new DefaultTableModel();
        public Demo() {
            jtb=new JTable(dtm);
            jtb.setPreferredScrollableViewportSize(new Dimension(200,200));
            jsp.add(jtb);
            jb=new JButton("ok");
            jb.addActionListener(this);
            jp1=new JPanel();
            jp2=new JPanel();
            jp2.setPreferredSize(new Dimension(300,300));
            jsp.setPreferredSize(new Dimension(300,300));
            jp2.setBackground(Color.red);
            jp2.setLayout(new BorderLayout());
            jp1.add(jb);
            this.add(jp1,"North");
            this.getContentPane().add(jsp, BorderLayout.CENTER);
            this.setSize(400,500);
            this.show();  
        }
        
        public void actionPerformed(ActionEvent e) {
            if(e.getSource()==jb) {
                ConDatabase base=new ConDatabase("select * from audit_project");
                rs=base.getrs();
                try {
                    ResultSetMetaData rsmd=rs.getMetaData();
                    for (int i = 1; i<=rsmd.getColumnCount(); i++) {
                        col.add(rsmd.getColumnName(i));
                    }
                    System.out.println(col);
                    while(rs.next()) {
                        Vector v=new Vector();
                        for (int i = 1; i<=rsmd.getColumnCount(); i++) {
                            v.add(rs.getString(i));
                        }
                        row.add(v);
                    }
                    System.out.println(row);
                    dtm.setDataVector(row,col);
                    jsp.setViewportView(jtb);
                    System.out.println("ddddddddd");
                } catch (Exception ex) {
                    System.out.println(ex.getMessage());
                }
            }
        }
        
        public static void main(String[] args) {
            new Demo();
        }
    }每次点击按钮,列数会增倍,只需要把两个vector clear()一下就行了,自己加吧。
    ps:注意一下代码规范
      

  2.   

    定义这样一个类,我已经写好,你可以直接调用
    package com.softfz.zxj;import java.util.ArrayList;import javax.swing.table.AbstractTableModel;public class  MyTableModel extends AbstractTableModel {//
     
    private ArrayList data = null;
    private String[] columnNames = null;
    public MyTableModel(String[] tableTitle,ArrayList tabledata)
    {
    columnNames = tableTitle;
    data = tabledata;
    }
    public int getColumnCount(){
    return columnNames.length;
    }
    public int getRowCount(){
       return data.size();
    }  public String getColumnName(int col){
    return columnNames[col];

    } public Object getValueAt(int row,int col){
    return ((ArrayList)data.get(row)).get(col);
    }


    /**
     * @return 返回 data。
     */
    public ArrayList getData() {
    return data;
    }
    实例化时要传入两个参数tableTitle,tabledata
    用法:tableTitle为表中每个字段的标题,tabledata这个参数是一个ArrayList
    如:String[] title ={"name","age"};
    ArrayList record=new  ArrayList();
    record.add("zxj");
    record.add(new Integer(56))
    ArrayList data = new ArrayList();
    data.add(record);
    table.setModel(new MyTableModel(title ,data));