2011-01-02 11 views
1

Ich versuche, eine JButton zu aktivieren, wenn Sie „Strg + A“ in einem jtable anklicken, um alle Zeilen auszuwählen, so dass ich diesen Code ausführen:Ich brauche eine Taste zu aktivieren, wenn Sie Strg + in Tabelle A klicken

myTable.addKeyListener(new KeyListener() {   
    @Override 
    public void keyReleased(KeyEvent e) { 
     if(e.getKeyCode() == KeyEvent.VK_A && (e.getModifiers() & InputEvent.CTRL_MASK) != 0) { // User clicked (CTRL + A) in table. 
      if(myTable.getRowCount() > 1) 
       myButton.setEnabled(true); 
     } 
    }    
}); 

Das Problem ist, dass dies oft nicht funktioniert ... Jedes Mal, wenn alle Zeilen in der Tabelle ausgewählt sind, aber die Schaltfläche nicht aktiviert ist! Ich muss 3 oder 4 Mal auf "Strg + A" klicken, damit dies funktioniert. Gibt es etwas, das ich wissen sollte, oder eine bessere Idee, damit das funktioniert?

Antwort

1

Versuchen Sie, keyPressed anstelle von keyReleased zu überschreiben.

+0

.. Ich hätte mehr nachdenken sollen, bevor Sie gefragt haben ... Vielen Dank :) – Brad

0

oder eine bessere Idee für das zu arbeiten?

Sie sollten Key Bindings, kein KeyListener verwenden.

Verwandte Themen