//jTable1 = new JTable(dataModel); 
//jScrollPane1 = new JScrollPane(jTable1); 
//jScrollPane1.setPreferredSize(new Dimension(700, 300)); 
jTable1.setModel(dataModel);--- ZJQ

解决方案 »

  1.   

    import javax.swing.*; 
    import java.awt.*; 
    import javax.swing.table.*; 
    import java.util.Vector;
    import java.awt.event.*;public class Untitled1 extends JFrame{ 
        private static JScrollPane jScrollPane1 = new JScrollPane(); 
        private static JTable jTable1 = new JTable();     void this_windowClosing(WindowEvent e) {
          System.exit(0);
        }
        
        public Untitled1() { 
            try { 
                jbInit(); 
                refresh();
            } 
            catch(Exception e) { 
                e.printStackTrace(); 
            } 
        }     public void refresh() { 
            final String[] names = {"First Name", "Last Name", "Favorite Color", 
                                    "Favorite Number", "Vegetarian"}; 
            final Object[][] data = { 
            {"Mark", "Andrews", "Red", new Integer(2), new Boolean(true)}, 
            {"Georges", "Saab", "Red", new Integer(4), new Boolean(false)}, 
            {"Willie", "Walker", "Phthalo Blue", new Integer(4), new Boolean(false)}, 
            {"Kathy", "Walrath", "Blue", new Integer(8), new Boolean(false)}, 
            {"Arnaud", "Weber", "Green", new Integer(44), new Boolean(false)} 
            }; 
         /*
            TableModel dataModel = new AbstractTableModel() {             public int getColumnCount() { return names.length; } 
                public int getRowCount() { return data.length;} 
                public Object getValueAt(int row, int col) {return data[row][col];} 
                public String getColumnName(int column) {return names[column];} 
                public Class getColumnClass(int col) {return getValueAt(0,col).getClass();} 
                public boolean isCellEditable(int row, int col) {return (col==4);} 
                public void setValueAt(Object aValue, int row, int column) { 
                    data[row][column] = aValue; 
                } 
             }; 
             */
            // jScrollPane1 = new JScrollPane(jTable1); 
            MyDefaultTModel mymodel = new MyDefaultTModel(data ,names );
            jTable1.setModel(mymodel );                // jScrollPane1.setPreferredSize(new Dimension(700, 300));     }     public static void main(String[] args) { 
            Untitled1 untitled11 = new Untitled1(); 
            untitled11.setSize(300,300); 
            untitled11.show();        // refresh();     }     private void jbInit() throws Exception { 
            //this.getContentPane().setLayout(null); 
           // jScrollPane1.setBounds(new Rectangle(55, 43, 281, 170)); 
            this.getContentPane().add(jScrollPane1, BorderLayout.CENTER); 
            jScrollPane1.getViewport().add(jTable1, null); 
        } 
    }    
    ///////////////
    import javax.swing.table.DefaultTableModel;
    import java.util.Vector;
        
    public class MyDefaultTModel extends DefaultTableModel {
           public MyDefaultTModel() {
              super();
           }
        
           public MyDefaultTModel(Vector data, Vector columnNames){
              super(data,columnNames);
           }
         
           public MyDefaultTModel(Object[][] data, Object[] columnNames){
              super(data,columnNames);
           }
           
           public Class getColumnClass(int col){
             try{
               Vector v = (Vector)dataVector.elementAt(col);
               return v.elementAt(col).getClass();
             }catch(java.lang.ArrayIndexOutOfBoundsException t){
               System.out.println("reeeeeeeee");
               return new String().getClass();
             }       }
       }