jTable很复杂,难操作。换个思路行不行?你这里实际是要实现顺序编辑的功能,所以没必要用jtable,这样就把问题复杂化了,用其他的方式编辑,比如,每条记录用一个form形式的编辑界面。

解决方案 »

  1.   

    程序来了!!!
    /*
     * JTableDemo.java
     *
     * Created on 2004年6月28日, 上午11:00
     *//**
     *
     * @author  Administrator
     */
    public class JTableDemo extends javax.swing.JFrame {    /** Creates new form JTableDemo */
        public JTableDemo() {
            initComponents();
        }    /** This method is called from within the constructor to
         * initialize the form.
         * WARNING: Do NOT modify this code. The content of this method is
         * always regenerated by the Form Editor.
         */
        private void initComponents() {
            jPanel1 = new javax.swing.JPanel();
            jScrollPane1 = new javax.swing.JScrollPane();
            jTable1 = new javax.swing.JTable();        setResizable(false);
            addWindowListener(new java.awt.event.WindowAdapter() {
                public void windowClosing(java.awt.event.WindowEvent evt) {
                    exitForm(evt);
                }
            });        jPanel1.setPreferredSize(new java.awt.Dimension(300, 200));
            jScrollPane1.setPreferredSize(new java.awt.Dimension(290, 190));
            jTable1.setModel(new CellModel());
            jTable1.setPreferredSize(new java.awt.Dimension(300, 260));
            jScrollPane1.setViewportView(jTable1);        jPanel1.add(jScrollPane1);        getContentPane().add(jPanel1, java.awt.BorderLayout.CENTER);        pack();
        }    /** Exit the Application */
        private void exitForm(java.awt.event.WindowEvent evt) {
            System.exit(0);
        }    /**
         * @param args the command line arguments
         */
        public static void main(String args[]) {
            new JTableDemo().show();
        }
        // Variables declaration - do not modify
        private javax.swing.JPanel jPanel1;
        private javax.swing.JScrollPane jScrollPane1;
        private javax.swing.JTable jTable1;
        // End of variables declaration}class CellModel extends javax.swing.table.AbstractTableModel{
    final String[] columnNames = {"Title 1", "Title 2", "Title 3", "Title 4"};
    private Object[][] data = new Object[26][4];
    public CellModel(){
    for(int i = 0;i < 26;i++){
    for(int j = 0;j < 4;j++){
    data[i][j] = new String("");
    }
    }
    }
    public String getColumnName(int columnIndex){
    return columnNames[columnIndex];
    }
    public Object getValueAt(int rowIndex,int columnIndex){
    return data[rowIndex][columnIndex];
    }
    public void setValueAt(Object aValue,int rowIndex,int columnIndex){
    data[rowIndex][columnIndex] = aValue;
    }
    public boolean isCellEditable(int rowIndex,int columnIndex){
    if(rowIndex == 0) return true;
    for(int i = 0;i < getColumnCount();i++){
    if(!data[rowIndex - 1][i].equals("")) return true;
    }
    return false;
    }
    public int getColumnCount(){
    return 4;
    }
    public int getRowCount(){
    return data.length;
    }
    }
      

  2.   

    class CellModel extends javax.swing.table.AbstractTableModel{}
    为什么我在定义CellModel 时,class 的地方总是出错?