1

我有一个 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。谢谢你!

4

1 回答 1

2

如何使用表格中所示,您可以通过选择如何构建您的TableModel. 要控制单个单元格,请覆盖isCellEditable()您的TableModel. 如果您仍有问题,请编辑您的问题以包含显示您选择的方法的sscce 。

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

您可能正在寻找一个TableCellEditor,在这里这里看到的。

于 2013-04-12T19:33:11.233 回答