日期:2014-05-20  浏览次数:20764 次

JTable的高级应用
    很多朋友在开发数据列表中数据新增、修改等操作的时候一般是弹出一个新的表单来处理,其实可以像类似Excel和很多数据库工具那样直接双击单元格来编辑的,例如时间字段默认显示时间,双击后弹出时间框来选择;部门的字段可以默认显示部门,双击后弹出一个ComboBox选项等等。
    简单写一个例子,供大家参考。

       // 设置jTableUser模型
        jTableUser.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "编号", "姓名", "所属公司", "密码", "管理权限", "锁定标识", "操作员", "操作时间", "备注"
            }
        ) {
            boolean[] canEdit = new boolean [] {
                false, true, true, true, true, true, false, false, true // 设置字段是否可编辑    
            };

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                if(rowIndex == jTableUser.getRowCount() - 1) { // 亮点~一般新增一条数据我们可以默认在数据最后一行加一个空行,这句就是判断这个空行的各个字段要都可以编辑,例如编号。
                    return true;
                } else {
                    return canEdit [columnIndex];
                }
            }
        }); 

        // 设置特殊字段编辑器
        TableColumnModel TCMUser = jTableUser.getColumnModel(); // jTableUser为用户管理的列表

        jComboBoxDept.setFont(new java.awt.Font("SimSun", 0, 12)); // jComboBoxDept为部门下来选框