TableModel的一个单元格录入数据后,没有变换单元格焦点,直接点击TableModel所在窗口的其他按钮,在按钮点击事件中取刚刚录入的单元格数据取不到值不知道是什么原因。
没有变换单元格的焦点不行吗?有没有一个方法能够使得TableModel接受这个新录入的数据呢?
本人菜菜鸟,可能问题有点弱,希望大哥们赐教

解决方案 »

  1.   

    不太好说因为窗口是代码里面继承了基类而来的,没有基类代码。
    就是一个窗口,里面放了一个tablemodel,然后现在只有一条数据记录,并且只有一个列tickmoney有焦点,可以录入数据。
    我在点击这个窗口的确定按钮时,想getvalue到tickmoney的值。
    当我用键盘敲入tickmoney的值并且回车或者tab键后,这时再点击按钮可以用getvalue取到tickmoney的值,但是假如我键入tickmoney的值后没有回车或者tab键,而是直接点击确定按钮,这时取不到刚刚键入的tickmoney的值。小弟以前用pb的,刚刚接触公司这个新项目不久,pb里面的数据窗口能够accepttext接收录入的值,但是这种情况,不知道swing咋处理的
      

  2.   

    使用getValueAt(行号, 列号)也不能直接获取?
      

  3.   

    按照swing的处理方式 当你在Table中输入完数据 鼠标点击按钮时 焦点已经离开Tabel 那么数据应该已经存入Tabel里面了 直接读取应该是可以实现的
      

  4.   

    我明白lz的意思了。
    swing的焦点处理机制的确有时候有些痛苦。但也无妨。
    你所说的状况应该是这样:
    table里面一个单元格处于编辑状态,此时你点击按钮,尽管看到界面上的数据已经改变,但是取出的数据却仍然是未被修改的。
    那么,是这样的原因:table里面的编辑器认为此时编辑未结束,因此数据尚未保存。而你点击按钮的时候,table并不会自动移除焦点,因此需要你自己作处理。可以在按钮的处理方法中,你取数据之前,加上如下代码:
    TableCellEditor cellEditor = table.getCellEditor();
    if (cellEditor != null) {
    cellEditor.stopCellEditing();
    }
      

  5.   

    太感谢两位大哥尤其是gentalguo老大的帮助了,小弟对java太菜了啊散分