Hotkeys

Status
Nicht offen für weitere Antworten.
M

MrWhy2

Gast
Hallo zusammen ;) mal wieder *g*

Eine Frage hab ich noch...

Wenn ich Hotkeys definieren will, muss ich die im jFrame deklarieren oder wo? damit jedesmal egal welche komponente den Focus hat, die hinterlegte aktion ausgeführt wird?

thx

Mr.
 

Templon

Bekanntes Mitglied
Hier mal ein kleines Testprogramm bei dem es funktionieren sollte, gibt vllt noch bessere Möglichkeiten. Such mal nach "global KeyListener Java" bei Google.

Code:
import java.awt.DefaultKeyboardFocusManager;
import java.awt.FlowLayout;
import java.awt.KeyboardFocusManager;
import java.awt.event.KeyEvent;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;

public class GlobalKeyListener {
	public static void main(String[] args) {
		KeyboardFocusManager kbfm = KeyboardFocusManager
				.getCurrentKeyboardFocusManager();
		kbfm.addKeyEventDispatcher(new MyKeyboardManager());
		
		JFrame frame = new JFrame();
		frame.setSize(800,600);
		
		frame.setLayout(new FlowLayout());
		
		frame.add(new JButton("TestButton"));
		frame.add(new JTextField("TestTextField"));
		
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setVisible(true);
	}

}

class MyKeyboardManager extends DefaultKeyboardFocusManager {
	public boolean dispatchKeyEvent(KeyEvent e) {
		if (e.isControlDown() && e.getKeyCode() == KeyEvent.VK_1) {
			System.out.println("HELP");
			return true;
		}
		return super.dispatchKeyEvent(e);
	}
}
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben