s1(java)项目实战(固定资产管理)(tools_ Mytable )

本文介绍了一个自定义的Java Swing表格组件Mytable,该组件继承自AbstractTableModel并提供了丰富的功能,如设置标题、内容,获取行列数据及编辑权限等。特别针对不同用户角色和表格类型进行了编辑权限的限制。
摘要由CSDN通过智能技术生成

package tools;

/**
 * <p>Title: </p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2007</p>
 *
 * <p>Company: </p>
 *
 * @author not attributable
 * @version 1.0
 */
import java.util.*;

import javax.swing.table.*;

public class Mytable extends AbstractTableModel {
    private Vector content = null;
    private String[] title;
    private String user = "";
    private int tname = 0;
    public Mytable(String _user) {
        user = _user;
    }

    public Mytable() {
        try {
            jbInit();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

    public Mytable(int _tname) {
        tname = _tname;
    }

    //获取title
    public void setTitle(String[] s) {
        title = s;
    }

    //获取content
    public void setContent(Vector v) {
        content = v;
    }

    //获取列名
    public String getColumnName(int col) {
        return title[col];
    }

    //获取行数
    public int getRowCount() {
        return content.size();
    }

    //获取列数
    public int getColumnCount() {
        return title.length;
    }

    //不能编辑
    public boolean isCellEditable(int row, int col) {
        if (tname == 0) {
            if (col == 0) {
                return false;
            } else {
                if (user.equals("admin")) {
                    if ((col == 1) && (row == 0)) {
                        return false;
                    } else {
                        return true;
                    }
                } else {
                    return true;
                }
            }
        } else if(tname == 1){
            if (col == 0 || col == 2) {
                return false;
            } else {
                return true;
            }
        }else if(tname == 3)
        {
            if(col == 0 || col == 6 ||col ==  5)
            {
                return  false;
            }else
            {
                return true;
            }

        }else
        {
            return false;
        }
    }

    //更改值
    public void setValueAt(Object value, int row, int col) {
        ((Vector) content.get(row)).remove(col);
        ((Vector) content.get(row)).add(col, value);
        this.fireTableCellUpdated(row, col);
    }


    public void clear() {
        for (int i = content.size() - 1; i >= 0; i--) {
            content.remove(i);
        }
    }

    //删除
    public void removeRow(int frist, int count) {
        for (int i = frist + count; i >= frist; i--) {
            content.remove(i);
        }
    }

    //取得行值
    public Object getValueAt(int row, int col) {
        return ((Vector) content.get(row)).get(col);
    }

    private void jbInit() throws Exception {
    }

}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值