package com.easyfeeling.utils.hotkey;
import java.awt.AWTEvent;
import java.awt.BorderLayout;
import java.awt.Toolkit;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class HotkeyTest {
public static void main(String[] args) {
JFrame frame = new JFrame();
JButton button = new JButton("Button");
JTextArea textArea = new JTextArea();
JScrollPane scroller = new JScrollPane(textArea);
frame.getContentPane().add(button, BorderLayout.NORTH);
frame.getContentPane().add(scroller, BorderLayout.CENTER);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500, 500);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500, 500);
frame.setVisible(true);
Toolkit toolkit = Toolkit.getDefaultToolkit();
// 注册应用程序全局键盘事件, 所有的键盘事件都会被此事件监听器处理.
toolkit.addAWTEventListener(
new java.awt.event.AWTEventListener() {
public void eventDispatched(AWTEvent event) {
if (event.getClass() == KeyEvent.class) {
KeyEvent kE = ((KeyEvent) event);
System.out.println(kE.getKeyCode()+" "+kE.getKeyChar());
// 处理按键事件 Ctrl+Enter
if ((kE.getKeyCode() == KeyEvent.VK_ENTER)
&& (((InputEvent) event)
.isControlDown())) {
//window.refreshAction();
} /* page down */else if (kE.getKeyCode() == KeyEvent.VK_PAGE_DOWN
&& kE.getID() == KeyEvent.KEY_PRESSED) {
//window.nextPageAction();
System.out.println("page down:" + kE.getID());
} /* page up */else if (kE.getKeyCode() == KeyEvent.VK_PAGE_UP
&& kE.getID() == KeyEvent.KEY_PRESSED) {
//window.previousPageAction();
System.out.println("page down:" + kE.getID());
}/* Ctrl +K */else if (kE.getKeyCode() == KeyEvent.VK_K
&& kE.isControlDown()
&& kE.getID() == KeyEvent.KEY_PRESSED) {
System.out.println("Ctrl +K");
//window.getSearchTF().requestFocus();
}
/* home */else if (kE.getKeyCode() == KeyEvent.VK_HOME
&& kE.getID() == KeyEvent.KEY_PRESSED) {
System.out.println("home");
//window.firstPageAction();
}
/* end */else if (kE.getKeyCode() == KeyEvent.VK_END
&& kE.getID() == KeyEvent.KEY_PRESSED) {
System.out.println("end");
//window.lastPageAction();
}
}
}
}, java.awt.AWTEvent.KEY_EVENT_MASK);
}
}