一个jtable,假设第1行第二列 出错,当光标移开时,要求提示 error信息。
error窗口点击ok后,要求 第1行第二列单元格显示红色背景,并且设置光标。还有一个要求,比如 该单元格原来是 2,变为空后,提示error信息,点ok后,要求该单元格的值变回为原来的2.请问该怎么实现。

解决方案 »

  1.   

    出错
    --》该单元格为必须输入项目,当由  有内容变为 null时,要求报错。
      

  2.   

    分成几个问题吧,1、继承默认的AbstractTableModel,重写setValue方法,这时候把每个单元格的记录好;
    2、JTable监听鼠标事件,就是addMouseListener,然后在mouseExited里面做检测的事情;
    3、检测到不正确就弹出提醒;
    4、从第一步保存的值里面拿出原来的值,然后填回去关于你要改变某一单元格背景颜色的问题,这种例子很多的,重写下DefaultTableCellRenderer,随便搜搜救找得到例子。其实你如果只是把字体变成红色会好点,只要返回一个html格式的String就好了。
    再看看上面的描述有什么遗漏的呃,那个mouseExited的event可以通过getPoint()取到当前点,然后JTable的rowAtPoint,columnAtPoint就可以得到当前单元格了
      

  3.   

    如果用 mouseExited 事件,则当光标仍在单元格里,但鼠标移到表格外时,就触发。
    如果用 focusLost事件,则当光标离开,放到不可编辑单元格时,不触发该事件。
    如果用 tableChanged,
    (4、从第一步保存的值里面拿出原来的值,然后填回去 )setValueAt方法也触发tableChanged事件。导致无线弹出 对话框。该用什么事件呢?
      

  4.   

    选哪个,是看你到底想要实现什么效果呢?
    还有ListSelectionListener呢,保存原来的[row,col],第二次在捕抓到事件,对比一下不等就开始检测。这样做也可以实现的,这样的方法很多另外,关于你说的无限对画框,在tableChanged弹对画框加个条件,用来判断区分是你自己set回默认值还是用户自己设的值,加个boolean不就可以了吗?