如何向JTable添加“输入值”监听器?

时间:2013-04-12 18:51:52

标签: java swing jtable mouselistener

我有一个JTable。目前我有以下代码:

     table.addMouseListener(new MouseAdapter() {
     public void mouseClicked(MouseEvent e) {
     if (e.getClickCount() == 1) {
     JTable target = (JTable)e.getSource();
     int row = target.getSelectedRow();

     int   value = Integer.parseInt( (String) table.getValueAt(row, 0));
     int x = 0,y=0;
     if (row==1) {x=582;y=483;} else if (row==2) {x=221;y=575;} else if (row==3) {x=231;y=435;}
     boundaryFill4(x, y, value, 50);

     my.setIcon(new ImageIcon(buffered));

            }
          }
        });

但是我需要让我的JTable在用户输入新值时自动更新。鼠标监听器并不能完全符合我的要求。当用户将光标指向JTable单元时,它会更新。我在文档中找不到任何“输入值更新”监听器。

我可以使用keyListener,但在这种情况下我需要添加一个“UPDATE”JButton,但我需要JTable在没有JButton的情况下自动更新。

第三种方法是创建无限更新循环:while(true){// update} 但这需要大量的计算机内存......而且效率不高。

有人可以推荐我如何改进我的代码,或者任何人都可以更正上面的MouseListener。谢谢!

1 个答案:

答案 0 :(得分:2)

How to Use Tables所示,您可以通过选择构建TableModel的方式来使每个单元格都可编辑。要控制单个单元格,请覆盖isCellEditable()中的TableModel。如果您仍有问题,请修改您的问题以包含显示您所选方法的sscce

附录:我很好奇是否有“输入”监听器。

您可能正在寻找TableCellEditorherehere