Désactiver Entrer la Clé de se déplacer vers le bas une ligne dans JTable

J'ai besoin de remplacer la touche entrée de fonctionnalités sur une JTable. À l'heure actuelle le comportement par défaut est de déplacer la ligne de sélection d'une ligne vers le bas lorsque l'utilisateur appuie sur la touche "Enter". Je veux désactiver et de faire quelque chose de différent en fonction de leur sélection. Le problème est qu'il semble se déplacer vers le bas avant qu'il ne passe dans ma keylistener qui prend dans la sélection d'une ligne - ce donc ouvre une autre fenêtre avec le mauvais ligne sélectionnée.

C'est mon code pour l'instant...:

public class MyJTable extends JTable {


   public MyJTable(){
        setRowSelectionAllowed(true);
        addListeners()
    }

    public void addListeners(){

         addKeyListener(new KeyListener() {
                @Override
                public void keyTyped(KeyEvent e) {}

                @Override
                public void keyPressed(KeyEvent e) {}

                @Override
                public void keyReleased(KeyEvent e) {
                    int key = e.getKeyCode();
                    if (key == KeyEvent.VK_ENTER) {

                        openChannel();
                    }
                }
           });
    }

    public void openChannel(){
            for (int selectedRow : getSelectedRows()){
                //Code to open channel based on row selected
            }
        }
}
  • KeyListener n'est pas la voie à suivre, composants Swing utilisation KeyBindings. Il y a donc une méthode d'enlèvement, enlevez KeyBindings de JTable et ajouter votre propre.
  • sans rapport: la JSomething sont destinés à être utilisés - ne pas sous-classe si vous pouvez atteindre la même configuration.
  • Merci pour vos réponses, qui fonctionne très bien. @Kleopatra, je le comprends, mais ce JTable doit être étendue, l'exemple était seulement un test de code de sorte que vous pouvez voir quel était le problème. Mais il garder cela à l'esprit pour l'avenir.
InformationsquelleAutor maloney | 2012-11-22