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();
           }
        }
    }             




        

相关文章推荐

JTable 主要的方法

void addColumn(TableColumn aColumn)           将 aColumn 追加到此 JTable 的列模型所保持的列数组的尾部。 void addColu...

使用swing中的JTable时常见问题

学员在初学java使用swing的JTable时经常会想达到各种使用效果,下面整理了一些被问较多的操作,给出了参考解决方案。结合这些大家可以根据API文档,逐渐认识swing的用法。1、 隐藏指定列t...
  • Admin_
  • Admin_
  • 2011年04月23日 11:46
  • 1301

Swing中经常会遇到的若干问题——JTable(持续更新)

本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/40955213 在使用Swing中JTable时,可能会遇...

treeviewer.setSelection(ISelection selection, boolean reveal)传true时无法选中子结点

有前同事问到此问题。 调试后发现,是由于TreeViewer的ContentProvider中没有实现getParent方法造成的。 关于getParent方法的说明如下: public...

PL/SQL的Boolean的三个值:TRUE,FALSE,NULL两两进行AND,OR操作的值

--让我们来看一下,在什么情况下会出现NULL值? declare type t_arr is array(3) of boolean;--声明boolean数组 b_array t_a...

swing中JTable的简单使用

  • 2009年01月08日 15:27
  • 254KB
  • 下载

中级SWING-JTable属性

  • 2009年03月03日 12:04
  • 9KB
  • 下载

Java Swing JTable 表格【14:表格的排序和过滤】

表格的排序和过滤: 排序和过滤基于一个新概念—-行排序器对象,它能够对行数据进行排序(和过滤)。把一个行排序其加入到一个表格组件中的最简单的方法是调用javax.swing.JTable中新引入的...

JTable 在swing中的使用

  • 2009年07月23日 23:13
  • 2KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:swing关于jtable的putClientProperty("terminateEditOnFocusLost", Boolean.TRUE)的问题
举报原因:
原因补充:

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