📄 arrowdecoratorlistener.java
字号:
/* * To change this template, choose Tools | Templates * and open the template in the editor. */package arrow;import java.awt.event.KeyEvent;import java.awt.event.KeyListener;/** * * @author zhaolin */public class ArrowDecoratorListener implements KeyListener { public static final int LEFT_ARROW=0; public static final int RIGHT_ARROW=1; public static final int UP_ARROW=2; public static final int DOWN_ARROW=3; //保存每一个方向的状态 private boolean arrowStatus[]; private ArrowKeyListener akl; public ArrowDecoratorListener(ArrowKeyListener akl){ this.akl = akl; arrowStatus = new boolean[4]; } public void keyTyped(KeyEvent e) { } public void keyPressed(KeyEvent e) { changeArrowStatus(e.getKeyCode(),true); invokeArrow(e); } public void keyReleased(KeyEvent e) { changeArrowStatus(e.getKeyCode(),false); invokeArrow(e); } private void changeArrowStatus(int keyCode,boolean value){ switch(keyCode){ case KeyEvent.VK_UP:arrowStatus[UP_ARROW]=value;break; case KeyEvent.VK_DOWN:arrowStatus[DOWN_ARROW]=value;break; case KeyEvent.VK_LEFT:arrowStatus[LEFT_ARROW]=value;break; case KeyEvent.VK_RIGHT:arrowStatus[RIGHT_ARROW]=value;break; } } private void invokeArrow(KeyEvent event){ if(arrowStatus[UP_ARROW]&&arrowStatus[LEFT_ARROW]){ akl.upLeftArrowPressed(event); }else if(arrowStatus[UP_ARROW]&&arrowStatus[RIGHT_ARROW]){ akl.upRightArrowPressed(event); }else if(arrowStatus[DOWN_ARROW]&&arrowStatus[LEFT_ARROW]){ akl.downLeftArrowPressed(event); }else if (arrowStatus[DOWN_ARROW] && arrowStatus[RIGHT_ARROW]) { akl.downRightArrowPressed(event); } else if(arrowStatus[UP_ARROW]){ akl.upArrowPressed(event); } else if(arrowStatus[DOWN_ARROW]){ akl.downArrowPressed(event); } else if(arrowStatus[LEFT_ARROW]){ akl.leftArrowPressed(event); } else if(arrowStatus[RIGHT_ARROW]){ akl.rightArrowPressed(event); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -