簡體   English   中英

如何向JTable添加“輸入值”偵聽器?

[英]How to add an “input value” listener to a JTable?

我有一個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。 謝謝!

如何使用表中所示 ,可以通過選擇構造TableModel方式使每個單元格可編輯。 要控制單個單元格,請在TableModel重寫isCellEditable() 如果仍然有問題,請編輯問題以包括一個顯示您選擇的方法的腳本

附錄: 我只是好奇是否有一個“輸入”監聽器。

您可能正在尋找TableCellEditor (在此處此處看到)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM