如何判断是否按下了Shift键?
/*** * 判断是否仅仅按下了Shift * @param e * @return */ public static boolean isJustShiftDown(KeyEvent e){ int keyCode=e.getKeyCode(); return e.isShiftDown()&&keyCode!= KeyEvent.VK_TAB &&keyCode!= KeyEvent.VK_QUOTE/*双引号*/ &&keyCode!= KeyEvent.VK_OPEN_BRACKET/*{*/ &&keyCode!= KeyEvent.VK_CLOSE_BRACKET/*}*/ &&keyCode!= KeyEvent.VK_COLON/*分号*/; }
?
如何判断是否双击呢?
inputTextArea.addKeyListener(new KeyListener() { private long lastTimeMillSencond; @Override public void keyTyped(KeyEvent e) { } @Override public void keyReleased(KeyEvent e) { } @Override public void keyPressed(KeyEvent e) { if (EventHWUtil.isJustShiftDown(e)) { if (lastTimeMillSencond == 0) { lastTimeMillSencond = System.currentTimeMillis(); } else { long currentTime = System.currentTimeMillis(); if (MenuUtil2.isDoubleClick(currentTime - lastTimeMillSencond )) { System.out.println("双击Shift"); doAction(); lastTimeMillSencond = 0; } else { lastTimeMillSencond = System.currentTimeMillis(); } } } } });
?
isDoubleClick的实现如下:
/*** * 通过时间间隔来判断是否是双击(不是鼠标,是键盘) * @param delta * @return */ public static boolean isDoubleClick(long delta){ return (delta<300&&delta>100); }
?
?
?
原文:http://hw1287789687.iteye.com/blog/2258234