Deaktivieren Sie die Enter-Taste aus nach unten bewegen, eine Zeile in JTable

Muss ich überschreiben Sie die enter-Taste Funktionen auf einer JTable. Derzeit das Standard-Verhalten ist das verschieben der Zeilen-Auswahl um eine Zeile nach unten, wenn der Benutzer drückt die "Enter" - Taste. Ich möchte dies deaktivieren, und Holen Sie es, etwas anderes zu tun, basierend auf Ihrer Auswahl. Das problem ist, dass es scheint, nach unten zu bewegen, bevor es weiter geht in meinem keylistener, die dauert in der Zeile selection - dadurch öffnet sich ein weiteres Fenster mit dem falschen Zeile ausgewählt.

Dies ist mein code so weit...:

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 ist nicht der Weg zu gehen, Swing-Komponenten verwenden KeyBindings. So gibt es eine remove-Methode entfernen Sie KeyBindings aus JTable, und fügen Sie Ihre eigenen.
  • unrelated: die JSomething bestimmt sind - nicht-Unterklasse, wenn Sie erreichen die gleiche Konfiguration.
  • Vielen Dank für Eure Antworten, das funktioniert Super. @Kleopatra, ich verstehe das, aber dieser JTable muss erweitert werden, das Beispiel wurde nur einige test-code, so dass Sie sehen können, was das problem war. Aber il tragen, dass im Geist für die Zukunft.
InformationsquelleAutor maloney | 2012-11-22
Schreibe einen Kommentar