JTable合計,自己的一個例子



import javax.swing.table.AbstractTableModel;
import javax.swing.table.DefaultTableModel;
/***
 * 功能:處理JTable,包括現實列表,對列表改動等
 * @author
 *
 */
public class ReportTableModel extends DefaultTableModel {
    /**
     *
     */
    private static final long serialVersionUID = 1L;
    Object[][] data;
    Object[] columnNames;

    ReportTableModel(Object[][] data, Object[] columnNames) {
        this.data = data;
        this.columnNames = columnNames;
    }

    public int getColumnCount() {
        return columnNames.length;
    }

    public int getRowCount() {
        if(data==null)return 0;
        return data.length;
    }

    public Object getValueAt(int row, int col) {
        // System.out.println("第"+(row+1)+"行"+(col+1)+"列:"+data[row][col]);
        return data[row][col];
    }

    // 該方法不一定要加入AbstractTableModel類,該方法設置列表的標題
    public String getColumnName(int col) {
        return columnNames[col] + "";
    }

    // 通過getClass()方法設置默認的控件,如true與false的默認控件是複選框,
    // 該方法不一定要加入AbstractTableModel類
    public Class getColumnClass(int c) {
        if(null == getValueAt(0, c))
        {//防止某一列沒有賦值,Boolean類型的話,直接在VO默認爲false,所以在這不判斷。
            return String.class;
        }else{
            return getValueAt(0, c).getClass();
        }
    }

    // 定義可以編輯的單元,true表示可編輯,false表示不可編輯

    public boolean isCellEditable(int row, int col) {

        return true;

    }

    // 將改變後的值保存在表格中
    public void setValueAt(Object value, int row, int col) {
        data[row][col] = value;
        System.out.println(row + 1 + "行:" + (col + 1) + "列:" + value);
        fireTableCellUpdated(row, col);
    }
}


應用:

       Object[][] data={{false,"欄目1"},{false,"欄目2"}};

       Object[][] title={ "是否打印", "欄目名"};

        ReportTableModel model = new ReportTableModel(data,o);

      //計算列的值(列是固定,行循環)

      int[] cols={1,4,7};

      String[] sumCount= new String[];

        String[] sumCount= new String[title.length];

       for(int i=0;i<model.getRowCount();i++){

            model.getValueAt(i, 1);//這裏列可做遍歷,一次性統計

     }
        model.addRow();
        JTable tableColumn = new JTable();
        tableColumn.setModel(model);


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章