码迷,mamicode.com
首页 > 其他好文 > 详细

数据变化提示保存

时间:2015-08-06 18:53:41      阅读:276      评论:0      收藏:0      [点我收藏+]

标签:

/**取对象序列化后的MD5值*/
public static String md5(Object data) throws Exception
{
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    new ObjectOutputStream(baos).writeObject(data);
    
    byte[] array = MessageDigest.getInstance("MD5").digest(baos.toByteArray());
    
    StringBuffer sb = new StringBuffer(32);
    for (int i = 0; i < array.length; i++) {//array.length = 16
        /*3位16进制数取后两位*/
        sb.append(Integer.toHexString((array[i] & 0xFF) | 0x100).substring(1, 3));  
    }
    
    return sb.toString();
}

public static void main(String[] args) throws Exception
{
    /*准备3行3列的数据*/
    Vector<Vector<Object>> rowData = new Vector<Vector<Object>>();
    Vector<Object> row1 = new Vector<Object>();
    row1.add(1);row1.add("张三");row1.add(new Date());
    rowData.add(row1);
    
    Vector<Object> row2 = new Vector<Object>();
    row2.add(2);row2.add("李四");row2.add(new Date());
    rowData.add(row2);
    
    Vector<Object> row3 = new Vector<Object>();
    row3.add(3);row3.add("王五");row3.add(new Date());
    rowData.add(row3);
    
    /*表头名称*/
    Vector<String> columnNames = new Vector<String>();
    columnNames.add("序号");columnNames.add("姓名");columnNames.add("日期");
    
    //JTable(Vector rowData, Vector columnNames)
    JTable table = new JTable(rowData, columnNames);
    JFrame frame = new JFrame("Test");
    frame.getContentPane().add(new JScrollPane(table));
    frame.setSize(800, 600);frame.setLocationRelativeTo(null);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);
    
    String data0 = md5(rowData);
    /*1、什么也没做数据没有变化,不会提示保存*/
    if(!data0.equals(md5(rowData)))JOptionPane.showMessageDialog(frame, "提示1:是否保存修改?");
    
    /*2、修改某个单元格的值,内容发送了变化,会提示保存*/
    rowData.get(0).set(1, "张三1");table.repaint();
    if(!data0.equals(md5(rowData)))JOptionPane.showMessageDialog(frame, "提示2:是否保存修改?");
    
    /*3、单元格改回原来的值,内容没有变化,不会提示保存*/
    rowData.get(0).set(1, "张三");table.repaint();
    if(!data0.equals(md5(rowData)))JOptionPane.showMessageDialog(frame, "提示3:是否保存修改?");
    
}


数据变化提示保存

标签:

原文地址:http://my.oschina.net/h2do/blog/488774

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!