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 なしで自動的に更新される必要があります。

3 番目の方法は、無限の更新ループを作成することです: while(true) { //update} しかし、これは多くのコンピューター メモリを必要とし、効率的な方法ではありません。

誰かが私のコードを改善する方法を教えてくれますか、または誰かが上記の MouseListener を修正できますか? ありがとう!

4

1 に答える 1

2

表の使い方 に示されているように、TableModel. 個々のセルを制御するにisCellEditable()は、TableModel. それでも問題が解決しない場合は、質問を編集して、選択したアプローチを示すsscceを含めてください。

補遺: 「入力」リスナーがあるかどうか知りたかっただけです。

をお探しの場合はTableCellEditorこちらこちらをご覧ください。

于 2013-04-12T19:33:11.233 に答える