我写的一个简单例子,你试试看吧。
//: TableAddRow.javaimport javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.table.*;
import java.util.ArrayList;public class TableAddRow extends JFrame {
JButton jb = new JButton("Add a row");
JTable table = new JTable(new DataModel());
// The TableModel controls all the data:
class DataModel extends AbstractTableModel {
ArrayList al = new ArrayList();
public DataModel() {
String[] row0 = {"one", "two", "three"};
al.add(row0);
}
public int getColumnCount() { 
return ((String[])(al.get(0))).length;
}
public int getRowCount() { 
return al.size();
}
public Object getValueAt(int row, int col) {
return ((String[])(al.get(row)))[col];
}
public void setValueAt(Object val, int row, int col) {
((String[])al.get(row))[col]=(String)val;
fireTableDataChanged();
}
public boolean isCellEditable(int row, int col) { 
return true; 
}
  } class AddRowL implements ActionListener {
public void actionPerformed(ActionEvent e) {
DataModel dm = (DataModel)table.getModel();
String[] newRow = {"","",""};
dm.al.add(newRow);
dm.fireTableDataChanged();
}
}; public TableAddRow() {
Container cp = getContentPane();
jb.addActionListener(new AddRowL());
cp.add(new JScrollPane(table));
cp.add(BorderLayout.SOUTH, jb);
setSize(300,300);
show();
}
public static void main(String[] args) {
TableAddRow table = new TableAddRow(); table.addWindowListener(
new WindowAdapter() {
public void windowClosing( WindowEvent e ) {
                System.exit( 0 );
            }
});
}
}

解决方案 »

  1.   

    import java.awt.*;
    import java.awt.event.*;
    import java.util.Vector;
    import javax.swing.*;
    import javax.swing.event.*;
    import javax.swing.table.*;public class AddRemoveCells implements ActionListener
    {
        JTable table = null;
        DefaultTableModel defaultModel = null;    public AddRemoveCells()
        {
            JFrame f = new JFrame();
            String[] name = {"字段 1","字段 2","字段 3","字段 4","字段 5"};
            String[][] data = new String[5][5];
            int value =1;
            for(int i=0; i<data.length; i++)
            {
                for(int j=0; j<data[i].length ; j++)
                    data[i][j] = String.valueOf(value++);
            }
                      
            defaultModel = new DefaultTableModel(data,name);
            table=new JTable(defaultModel);
            table.setPreferredScrollableViewportSize(new Dimension(400, 80));
            JScrollPane s = new JScrollPane(table);
            
            JPanel panel = new JPanel();
            JButton b = new JButton("增加行");
            panel.add(b);
            b.addActionListener(this);
            b = new JButton("增加列");
            panel.add(b);
            b.addActionListener(this);
            b = new JButton("删除行");
            panel.add(b);
            b.addActionListener(this);
            b = new JButton("删除列");
            panel.add(b);
            b.addActionListener(this);
            
            Container contentPane = f.getContentPane();
            contentPane.add(panel, BorderLayout.NORTH);
            contentPane.add(s, BorderLayout.CENTER);
            
        f.setTitle("AddRemoveCells");
            f.pack();
            f.setVisible(true);
            
            f.addWindowListener(new WindowAdapter() {
                public void windowClosing(WindowEvent e) {
                    System.exit(0);
                }
            });
        }
        
        public void actionPerformed(ActionEvent e)
        {
            if(e.getActionCommand().equals("增加列"))
                defaultModel.addColumn("增加列");
            if(e.getActionCommand().equals("增加行"))
                defaultModel.addRow(new Vector());
            if(e.getActionCommand().equals("删除列"))
            {
                int columncount = defaultModel.getColumnCount()-1;
                if(columncount >= 0)
                {
                    TableColumnModel columnModel = table.getColumnModel();
                    TableColumn tableColumn = columnModel.getColumn(columncount);
                    columnModel.removeColumn(tableColumn);
                    defaultModel.setColumnCount(columncount);
                }
            }
            if(e.getActionCommand().equals("删除行"))
            {
                int rowcount = defaultModel.getRowCount()-1;
                if(rowcount >= 0)
                {
                    defaultModel.removeRow(rowcount);
                    defaultModel.setRowCount(rowcount);
                }
            }
            table.revalidate();
        }
        
        public static void main(String args[]) {
            new AddRemoveCells();
        }
    }编译即可运行
      

  2.   

    这样写对吗??  没有添加啊!!! 
    DefaultTableModel dtm=null;
     jScrollPane1 = new javax.swing.JScrollPane(jTable1);
            jTable1 = new JTable(dtm);
            Object [][] strobject=new Object [][] {
                    {null, null, null, null, null}
                };
           Object [] strobjecttmp=new String [] {
                    "名称", "数量", "单价", "金额", "领用人签名"
                };
            dtm=new DefaultTableModel(strobject,strobjecttmp); 
            dtm.addRow(new Vector());
             jTable1.revalidate();