STRG + TAB KeyEvent abfangen

sylo

Bekanntes Mitglied
Hi zusammen

Ich habe wie hier

http://www.java-forum.org/awt-swing-swt/7221-tab-funktion-fenster-aendern-genauer-strg-tab.html

genau das gleiche Problem. Da dieser Thread bereits geschlossen war muss ich leider einen neuen aufmachen.

Folgendes Problem:
Ich würde gerne die TastenKombo STRG+TAB abfangen und irgendwas auslösen.

Die Antwort von thE_29 war daraufhin:
Java:
import java.util.HashSet;
import javax.swing.KeyStroke;
import javax.swing.FocusManager;


    FocusManager fm = FocusManager.getCurrentManager();
    Set newKeys = new HashSet(fm.getDefaultFocusTraversalKeys(FocusManager.
        FORWARD_TRAVERSAL_KEYS));
    newKeys.remove(KeyStroke.getKeyStroke(KeyEvent.VK_TAB,0));
    fm.setDefaultFocusTraversalKeys(FocusManager.FORWARD_TRAVERSAL_KEYS,
                                newKeys);

daraufhin schrieb der Themenstarter,
Hah! Geknackt!!!

Ich liebe Java
Mann, hat das gedauert! Also, dass mit den FocusManager und den DefaultFocusTraversalKeys war schon gut, aber statt TAB musste ich "ctrl TAB" rausnehmen! Ich wußte gar nicht, dass es so eine Kombination auch dort gibt ... :?

Also nochmal danke für die Tipps ... Leider habe ich jetzt gemerkt, dass hier im Forum schnell geholfen wird, was bedeutet, dass ich ab jetzt mehr Fragen posten werde ...

Reeny

So wie ich das verstehe, muss man hier die Zeile
Java:
newKeys.remove(KeyStroke.getKeyStroke(KeyEvent.VK_TAB,0));
einfach ändern in das mit "ctrl TAB". Unter KeyEvent finde ich da aber leider nichts. Was verstehe ich den hier falsch?

Grüße
sylo
 

sylo

Bekanntes Mitglied
Hi

also ich habe es nicht hinbekommen. Ich weiß echt nicht wo mein Fehler ist. Mach jetzt folgendes.

Zuerst definiere ich auch die Action:
Java:
Action machWas = new AbstractAction() {
                                public void actionPerformed(ActionEvent e) {
                                    System.out.println(" JIPPIE: TASTENKOMBI ANGEKOMMEN!!!");
                                }
                            };
Dann entferne ich die TastenKombo
Java:
FocusManager fm = FocusManager.getCurrentManager();
                            Set newKeys = new HashSet(fm.getDefaultFocusTraversalKeys(FocusManager.
                                FORWARD_TRAVERSAL_KEYS));
                            newKeys.remove(KeyStroke.getKeyStroke("ctrl TAB"));
                            fm.setDefaultFocusTraversalKeys(FocusManager.FORWARD_TRAVERSAL_KEYS,
                                                        newKeys);
Und zu letzt überprüfe ich im KeyListener
Java:
public void keyReleased(KeyEvent e) {  
                                    if(e.isControlDown()){
                                        if(e.getKeyCode()==KeyEvent.VK_TAB)
                                            System.out.println("Endlich!!! TAB(released) mit STRG");
                                    }

                                }

Grüße
sylo
 

Michael...

Top Contributor
Was ist mit der Action machWas die hat ja mit dem anderen Code nichts zu tun.

Was Du mit dem Code bisher gemacht hast ist, dass die Tastenkombination STRG+TAB im FocusManager nicht mehr als "Forward_Traversal_Key" behandelt wird. Mehr nicht.

Der Code des KeyListeners schwebt ja auch irgendwie im luftleeren Raum, aber wenn der KeyListener an einer Textkomponte registriert ist, dann würde er beim Loslassen vom TAB (bei gedrückter STRG Taste) anspringen.

Wie z.B. in folgendem Code:
Java:
FocusManager fm = FocusManager.getCurrentManager();
Set newKeys = new HashSet(fm.getDefaultFocusTraversalKeys(FocusManager.FORWARD_TRAVERSAL_KEYS));
newKeys.remove(KeyStroke.getKeyStroke("ctrl TAB"));
fm.setDefaultFocusTraversalKeys(FocusManager.FORWARD_TRAVERSAL_KEYS, newKeys);
JTextField text = new JTextField();
text.addKeyListener(new KeyAdapter() {
	public void keyReleased(KeyEvent e) {
		if (e.isControlDown()) {
			if (e.getKeyCode() == KeyEvent.VK_TAB)
				System.out.println("Endlich!!! TAB(released) mit STRG");
		}
	}
});
 

sylo

Bekanntes Mitglied
Hi

stimmt. Die Action tut nichts zur Sache, deswegen weg damit.

Der KeyListener wird natürlich vorher erzeugt und meiner JTable, um die es sich dreht, zugewiesen.

Java:
KeyListener kl = new KeyListener() {
    public void keyTyped(KeyEvent e) {

    }

    public void keyReleased(KeyEvent e) {
      if(e.isControlDown()){
              if(e.getKeyCode()==KeyEvent.VK_TAB)
                   System.out.println("Endlich!!! TAB(released) mit STRG");
              }
      }

    public void keyPressed(KeyEvent e) {
                                   
    }
};

jTable.addKeyListener(kl);

Was Du mit dem Code bisher gemacht hast ist, dass die Tastenkombination STRG+TAB im FocusManager nicht mehr als "Forward_Traversal_Key" behandelt wird. Mehr nicht.
Was meintest du damit. Was muss ich den noch machen?
 

Michael...

Top Contributor
Wenn's um die JTable geht musst Du den Code ein bisschen abändern, da diese Ihre eigene FocusTraversalPolicy benutzt:
Java:
	Set newKeys = new HashSet(table.getFocusTraversalKeys(FocusManager.FORWARD_TRAVERSAL_KEYS));
	newKeys.remove(KeyStroke.getKeyStroke("ctrl TAB"));
	table.setFocusTraversalKeys(FocusManager.FORWARD_TRAVERSAL_KEYS, newKeys);
	table.addKeyListener(new KeyAdapter() {
		public void keyReleased(KeyEvent e) {
			if (e.isControlDown()) {
				if (e.getKeyCode() == KeyEvent.VK_TAB)
					System.out.println("Endlich!!! TAB(released) mit STRG");			}
		}
	});
 

sylo

Bekanntes Mitglied
Hi

Danke Michael. Die Zeile wars.

Java:
 Set newKeys = new HashSet(table.getFocusTraversalKeys(FocusManager.FORWARD_TRAVERSAL_KEYS));

Grüße
sylo
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J KeyEvent STRG+l, CTRL_DOWN_MASK AWT, Swing, JavaFX & SWT 7
D JavaFX Überprüfung, ob Strg gedrückt ist AWT, Swing, JavaFX & SWT 3
Seikuassi Swing JTextField nimmt kein Einfügen (Strg+V) an AWT, Swing, JavaFX & SWT 4
K JFileChooser mehrere Dateien markieren ohne STRG AWT, Swing, JavaFX & SWT 4
B KeyListener Strg+s AWT, Swing, JavaFX & SWT 5
R Scrollbar nur ohne STRG AWT, Swing, JavaFX & SWT 4
P SWT Browser-Widget und Zwischenablage bzw. Strg+C AWT, Swing, JavaFX & SWT 5
S Swing JTable Auswahl mehrerer Zellen mit STRG+Maus AWT, Swing, JavaFX & SWT 3
P Für den Inhalt einer Zelle (aus Tabelle) STRG-C anwenden AWT, Swing, JavaFX & SWT 2
T JList Mehrfachauswahl ohne Drücken der Strg-Taste AWT, Swing, JavaFX & SWT 3
D Strg + C in JTable AWT, Swing, JavaFX & SWT 2
M Strg+C an JTree binden AWT, Swing, JavaFX & SWT 2
R TAB-Funktion in Fenster ändern - genauer: STRG+TAB AWT, Swing, JavaFX & SWT 5
M JEditorPane und Strg - z? AWT, Swing, JavaFX & SWT 2
M KeyEvent ohne Fokus konsumieren AWT, Swing, JavaFX & SWT 1
Monokuma KeyEvent in der Canvas Klasse AWT, Swing, JavaFX & SWT 0
F AWT awt KeyEvent - Zeichen direkt nach Eingabe löschen AWT, Swing, JavaFX & SWT 2
Bluedaishi JavaFX JFoenix TextField KeyEvent AWT, Swing, JavaFX & SWT 2
L JavaFX ASCII Zeichen /char von KeyEvent erhalten AWT, Swing, JavaFX & SWT 5
Wurstkopp JavaFX JavaFX KeyEvent kein Zahlencode um unbekannte Mediatasten auszuwerten? AWT, Swing, JavaFX & SWT 0
B JavaFX Wo liegt mein Gedankenfehler ??? KeyEvent geht nicht ... AWT, Swing, JavaFX & SWT 8
S Swing JDialog mit KeyEvent als Rückgabe AWT, Swing, JavaFX & SWT 1
B JavaFX KeyEvent und Canvas draw Problem AWT, Swing, JavaFX & SWT 9
dat_vin KeyEvent jTextField AWT, Swing, JavaFX & SWT 12
A Swing KeyEvent mit KeyListener und KeyAdapter kürzer schreiben AWT, Swing, JavaFX & SWT 7
B Event Handling KeyEvent für "+"-Tase auf dem Numpad? AWT, Swing, JavaFX & SWT 2
R Integer to KeyEvent AWT, Swing, JavaFX & SWT 2
earlgrey_tea KeyEvent reagiert nicht auf Eingabe ("Pausentaste") AWT, Swing, JavaFX & SWT 11
Luk10 KeyEvent ... AWT, Swing, JavaFX & SWT 6
M KeyEvent, KEY_TYPED & backspace/left/right. AWT, Swing, JavaFX & SWT 3
H KeyEvent für JFrame AWT, Swing, JavaFX & SWT 3
S Spezielles KeyEvent AWT, Swing, JavaFX & SWT 6
Luma AWTEventListener KeyEvent und KEY_TYPED AWT, Swing, JavaFX & SWT 5
P KeyEvent methode an actionEvent methode weiterleiten AWT, Swing, JavaFX & SWT 5
A KeyEvent bei TAB-Druck AWT, Swing, JavaFX & SWT 10
J KeyEvent bei JTable mehrmals hintereinander ausführen AWT, Swing, JavaFX & SWT 9
I Pfeiltasten für KeyEvent AWT, Swing, JavaFX & SWT 4
G Windows Taste in KeyEvent? AWT, Swing, JavaFX & SWT 4
M KeyEvent - Programm mit ESC beenden AWT, Swing, JavaFX & SWT 7
H KeyEvent Leerzeichen und Backspace funktioren nicht! HILFE! AWT, Swing, JavaFX & SWT 2
S KeyEvent im JPanel AWT, Swing, JavaFX & SWT 3
G KeyEvent - Probleme AWT, Swing, JavaFX & SWT 6
G Suche einen KeyEvent für die Taste "ä" AWT, Swing, JavaFX & SWT 7
T ScrollEvent richtig(er) abfangen? AWT, Swing, JavaFX & SWT 0
A JOptionPane OK ohne Eingabe abfangen AWT, Swing, JavaFX & SWT 10
Neumi5694 Swing JList - Klick abfangen AWT, Swing, JavaFX & SWT 3
D Swing Events vom JLayer abfangen AWT, Swing, JavaFX & SWT 2
E Outlook Email Senden-Button abfangen AWT, Swing, JavaFX & SWT 5
C Programm für 5 sekunden anhalten und actionevent abfangen AWT, Swing, JavaFX & SWT 18
T Swing JTextPane Tastatureingabe abfangen AWT, Swing, JavaFX & SWT 4
M JFileChooser Abfangen des DateiTypen möglich?? AWT, Swing, JavaFX & SWT 5
S Swing JTable - Editierung von Zellen abfangen AWT, Swing, JavaFX & SWT 3
P Action Event abfangen etwas anders? AWT, Swing, JavaFX & SWT 2
M JOptionPane.showInputDialog abbrechen abfangen? AWT, Swing, JavaFX & SWT 2
P Swing Tastaturereignisse auf gesamten Frame Abfangen AWT, Swing, JavaFX & SWT 13
M JTextField Tastendruck Abfangen AWT, Swing, JavaFX & SWT 3
H warum kann ich das focus event nicht abfangen ? AWT, Swing, JavaFX & SWT 5
C JTable: Alle selektierten Zellen abfangen AWT, Swing, JavaFX & SWT 13
J JPanel.addKeyListener() - JEDEN Tastendruck im Panel abfangen AWT, Swing, JavaFX & SWT 2
J AWT Abfangen der Rohdaten die PrinterJob zum Drucker sendet AWT, Swing, JavaFX & SWT 2
P Leere Textfelder abfangen AWT, Swing, JavaFX & SWT 4
F MouseEvent bei PopupMenu abfangen AWT, Swing, JavaFX & SWT 2
K Tastatureingaben abfangen AWT, Swing, JavaFX & SWT 25
H Ich kann MouseDragged nicht abfangen AWT, Swing, JavaFX & SWT 3
G Swing Fortschrittsbalken im Fenster: Menü deaktivieren / abfangen? AWT, Swing, JavaFX & SWT 27
pinerski Swing JList Tastatureingaben abfangen AWT, Swing, JavaFX & SWT 2
M Doppelklick auf Component abfangen AWT, Swing, JavaFX & SWT 5
E Swing Wechsel in JCheckBox abfangen AWT, Swing, JavaFX & SWT 10
R ALt+CTRL down, wie abfangen? AWT, Swing, JavaFX & SWT 2
R Checkboxen - Event mit Controller abfangen AWT, Swing, JavaFX & SWT 7
K Alle Events abfangen mit GlassPane AWT, Swing, JavaFX & SWT 7
E MouseEvent von Kindelementen abfangen AWT, Swing, JavaFX & SWT 2
R Texteingabe abfangen AWT, Swing, JavaFX & SWT 5
P SWT: KeyEvents abfangen, wenn Programm minimiert ist? AWT, Swing, JavaFX & SWT 5
K JTable und auf den Tabellenkopf-Click-Event abfangen AWT, Swing, JavaFX & SWT 2
M Globale Events in Windows abfangen AWT, Swing, JavaFX & SWT 2
S Events abfangen, nicht durchlassen AWT, Swing, JavaFX & SWT 2
G Zwischenablage abfangen AWT, Swing, JavaFX & SWT 4
M JTable alte Daten vor Änderung abfangen AWT, Swing, JavaFX & SWT 11
D Wie Taste "ENTER" bei PlainDocument abfangen? AWT, Swing, JavaFX & SWT 2
P SWT Fenster schließen abfangen AWT, Swing, JavaFX & SWT 4
S Minimieren abfangen AWT, Swing, JavaFX & SWT 2
A Tasten abfangen AWT, Swing, JavaFX & SWT 9
M Tastendruck abfangen AWT, Swing, JavaFX & SWT 8
S "Enter" in JTextField abfangen AWT, Swing, JavaFX & SWT 7
B Tastatureingabe in JComboBox abfangen. AWT, Swing, JavaFX & SWT 6
K JFrame setDefaultCloseOperation: Wie abfangen? AWT, Swing, JavaFX & SWT 2
G Ein klick auf JPanel abfangen und verarbeiten? AWT, Swing, JavaFX & SWT 3
J Keyevents abfangen in einer JTable AWT, Swing, JavaFX & SWT 2
F Habe Problem mit dem Abfangen einer Exception AWT, Swing, JavaFX & SWT 10
S Events bei 2 gleichen Jtree abfangen AWT, Swing, JavaFX & SWT 3
M Ereignis der JList abfangen AWT, Swing, JavaFX & SWT 2
O Exception abfangen AWT, Swing, JavaFX & SWT 19
K MouseEvents vor den Components abfangen? AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben