您的位置:首页 > 编程语言 > Java开发

java 全局按键 swing

2015-11-19 20:05 405 查看
DefaultKeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(new KeyEventDispatcher() {
@Override
public boolean dispatchKeyEvent(KeyEvent e) {

if (e.getKeyCode() == KeyEvent.VK_F1) {
toolbarPanel.switchLogLevelItem.setVisible(true);   //设置按钮是否可见
toolbarPanel.saveItem.setVisible(true);
toolbarPanel.clearAccItem.setVisible(true);
toolbarPanel.clearBuildItem.setVisible(true);

} else if (e.getKeyCode() == KeyEvent.VK_F2){
toolbarPanel.switchLogLevelItem.setVisible(false);
toolbarPanel.saveItem.setVisible(false);
toolbarPanel.clearAccItem.setVisible(false);
toolbarPanel.clearBuildItem.setVisible(false);
}

// e.getModifiers()==3 表示ctrl+shift同事按下

// e.getModifiers()==1 表示shift按下

// e.getModifiers()==2 表示ctrl按下

// e.consume();// 是否已经消费了此事件

return e.isConsumed();
}

});

=======================

Toolkit 全局设置

Toolkit toolkit=Toolkit.getDefaultToolkit();

toolkit.addAWTEventListener(new AWTEventListener()

{
@Override
public void eventDispatched(AWTEvent event)
{
if (event.getClass()==KeyEvent.class)
{
KeyEvent e=(KeyEvent)event;
//...
System.out.println("e.getKeyChar()" + e.getKeyChar() + ",e.getKeyCode()"
+ e.getKeyCode() + ",e.getID()" + e.getID());
}
}

},java.awt.AWTEvent.KEY_EVENT_MASK);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: