Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Problrma con JFrame e KeyListener

    ciao a tutti.
    in un jframe vorrei fare in modo che al click del tasti F5 venga svolta un'operazione.
    nel costruttore ho messo questo:
    codice:
        public FormMain() {
            initComponents();
            setExtendedState(JFrame.MAXIMIZED_BOTH);
            
            addKeyListener(new java.awt.event.KeyAdapter() {
                @Override
                public void keyPressed(java.awt.event.KeyEvent evt) {
                    if (evt.getKeyCode() == KeyEvent.VK_F5) {
                        System.out.println("OK");
                    }
                }
            });
            
        }
    però quando premo F5 non succede nulla.
    quale potrebbe essere il problema??

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Non usare il KeyListener, lo stai usando nel "contesto" sbagliato.

    Leggi qui
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    ciao!
    allora, visto che in verità l'F5 serve per la jtable ho fatto così:
    codice:
        public FormMain() {
            initComponents();
            txtUser.requestFocus();
            setExtendedState(JFrame.MAXIMIZED_BOTH);
    
            tableData.getInputMap().put(KeyStroke.getKeyStroke("F5"), new AbstractAction("actionName") {
                @Override
                public void actionPerformed(ActionEvent evt) {
                    System.out.println("OK");
                }
            });
        }
    però nn esce nulla.
    ho pensato fosse un problema di focus, così ho provato prima cliccare una riga della jtable e poi premere F5.
    ma nulla.

  4. #4
    trovato:
    codice:
     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) {
                    System.out.println("OK");
                }
            });
    grazie per la dritta!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.