JTable: KeyStroke e Action

Mattepuffo's logo
JTable: KeyStroke e Action

JTable: KeyStroke e Action

L'altro giorno mi è venuto in mente questo: se volessi aggiornare la mia JTable usando il tasto F5 come faccio su Firefox per aggiornare la pagina?

Ebbene, è possibile e vediamo come fare.

Prima di tutto ci serve un oggetto KeyStroke, che rappresenta un'azione sulla tastiera derivante dalla pressione di un tasto.

Con questo oggetto intercetteremo la pressione del tasto F5 quando il focus è sulla JTable.

Poi aggiungeremo un evento actionPerformed associato al tasto premuto.

 

In parole di codice nel costruttore del nostro JFrame:

public FormMain() { // COSTRUTTORE
        ........................................
        KeyStroke f5 = KeyStroke.getKeyStroke(KeyEvent.VK_F5, 0);
        tableData.getInputMap(JTable.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(f5, "UPDATE");
        tableData.getActionMap().put("UPDATE", new AbstractAction() {
            @Override
            public void actionPerformed(ActionEvent evt) {
                // DO STUFF
            }
        });
    }

Con getInputMap controlliamo la pressione del tasto quando la JTable ha il focus.

Con getActionMap creiamo l'evento actionPerformed associato alla pressione del tasto.

Il tutto è abbastanza semplice.

Per saperne di più controllate la documentazione linkata.

Ciao e buon Halloween!!


Condividi

Commentami!