swing关于jtable的putClientProperty("terminateEditOnFocusLost", Boolean.TRUE)的问题

原创 2013年12月03日 20:54:44

    

    在netbeans上做一个swing,但是出现问题,如果我正在jtable上编辑完一个cell的时候,去点击其他的按钮或者控件,那么正在编辑的那个cell的内容是取不到的,比如说我正在编辑第二行第三列的时候,输入500,然后点击其他按钮,此时jtable上面这个cell的背景是黑色的,或者是正在编辑的状态,我是取不到这个500的。

        要想解决这个问题,必须要在jtable构建的时候,加上一句putClientProperty("terminateEditOnFocusLost", Boolean.TRUE),这一句的作用是:当从当前的jtable移到其他地方,也就是其他控件的时候,当前编辑的数据就会固定了,也就是使之不处于编辑状态,从而让其他控件可以访问这些输入。

        但是我在实际开发的时候,发现一个问题:如果其他控件是一个按钮等不是jtable的时候,没有问题,如果是另一个jtable的时候就有问题(也就是我在一个jtable上面输入,然后再双击另一个jtable的cell进行编辑的时候)会出现一个空指针异常

         java.lang.NullPointerException 
      在javax.swing.JTable中的$ CellEditorRemover.propertyChange

         虽然我不知道具体的原因是为什么,但是我琢磨了半天,才发现是putClientProperty("terminateEditOnFocusLost", Boolean.TRUE)的问题,但是这一句又不能删除,所以在代码中加入了这样一句话,完美解决。(在jtable的focusLost事件中)

       

private void jTable2FocusLost(java.awt.event.FocusEvent evt) {                                  
        // TODO add your handling code here:
         CellEditor editor= jTable2.getCellEditor();
        if(jTable2.isEditing()&&editor!=null)
        {
           boolean b= editor.stopCellEditing();
           if(!b)
           {
               editor.cancelCellEditing();
           }
        }
    }             




        

TableCellEditor焦点离开数据丢失问题

http://sailing8036.spaces.live.com/blog/cns!69d05dfd4294f487!513.entry?sa=48687762很多人抱怨Swing的TableCe...
  • chosen0ne
  • chosen0ne
  • 2009年08月18日 10:21
  • 1722

swing关于jtable的putClientProperty("terminateEditOnFocusLost", Boolean.TRUE)的问题

在netbeans上做一个swing,但是出现问题,如果我正在jtable上编辑完一个cell的时候,去点击其他的按钮或者控件,那么正在编辑的那个cell的内容是取不到的,比如说我正在编辑第二行第三列...
  • oppo117
  • oppo117
  • 2013年12月03日 20:54
  • 1234

JTable内容生效方式

JTable单元格中编辑完后需要按enter或者点击该表的其他单元格,才能使该单元格内容生效。 当有多个表需要输入时显得很麻烦。一般习惯是,修改完,鼠标会直接点别的表。 修改方式: table....
  • u011261427
  • u011261427
  • 2015年11月15日 15:16
  • 137

JTable冻结列的简单实现

JTable实现冻结列的示例
  • wu504374492
  • wu504374492
  • 2014年08月24日 19:36
  • 796

【swing】jtable用法

http://blog.163.com/sean_zwx/blog/static/16903275520104703356161/ Swing中JTable用法   2...
  • cdnight
  • cdnight
  • 2013年07月15日 20:12
  • 1471

JTable 失去焦点时取消编辑状态

转载地址: http://www.cnblogs.com/aquar/p/3263761.html 当JTable的单元格处于编辑状态时,如果用户触发以下事件,表格就会退出编辑状态,进而调用Ta...
  • auragreen
  • auragreen
  • 2016年09月29日 18:03
  • 2018

Java Swing 之JTable及其简单的用法

我们都知道JTable需要使用一个Model配合才能更好地发挥其作用。而使用Model有好多种方法,但是难易程度却大大不同,比如说我们使用AbstractTableModel接口要实现里面的好多方法,...
  • Marksinoberg
  • Marksinoberg
  • 2015年10月26日 21:08
  • 10749

Java Swing中JTable的使用

写数据库的大作业,难免牵涉到JTable,说一些使用JTable的心得:JTable的数据源是一个叫做DefaultTableModel的对象,在JTable创建时即可绑定: DefaultTable...
  • xinem
  • xinem
  • 2009年01月31日 20:15
  • 10008

Java Swing的一些技巧总结

1.WindowBuilder安装 这个Eclipse插件能够实现在Java Swing编程中各种控件的拖拽 下载地址:http://www.eclipse.org/windowbuilder/dow...
  • huhui_bj
  • huhui_bj
  • 2014年03月26日 15:08
  • 1753
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:swing关于jtable的putClientProperty("terminateEditOnFocusLost", Boolean.TRUE)的问题
举报原因:
原因补充:

(最多只允许输入30个字)