如何判断是否按下了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);
- }