inputaction.java

来自「<j2me 开发精解> 詹建光著 里所有的源码。对J2me的开发相当」· Java 代码 · 共 59 行

JAVA
59
字号
package com.j2medev.chapter5.example;

public class InputAction {
    //两种检测模式
    public static final int MODE_NORAML = 0;
    
    public static final int MODE_INITAL_ONLY = 1;
    
    //三种按键状态
    private static final int STATE_PRESSED = 1;
    
    private static final int STATE_RELEASED = 2;
    
    private static final int STATE_HOLDON = 3;
    
    //检测模式变量
    private int mode;
    
    //按键状态变量
    private int state;
    
    public InputAction() {//按照MODE_NORAML模式初始化
        this(MODE_NORAML);
    }
    
    public InputAction(int mode) {//按照指定模式初始化
        this.mode = mode;
        this.state = STATE_RELEASED;
        reset();
    }
    
    public synchronized void press() {//按下
        if (state != STATE_HOLDON) {
            state = STATE_PRESSED;
        }
    }
    
    public synchronized void release() {//抬起
        state = STATE_RELEASED;
    }
    
    public synchronized void reset() {//重置
        release();
    }
    
    public synchronized void tap() {//模拟一次按键
        press();
        release();
    }
    
    public synchronized boolean isPressed() {//根据不同模式,判断是否按下按键
        int lastState = state;
        if (state == STATE_PRESSED && mode == MODE_INITAL_ONLY) {
            state = STATE_HOLDON;
        }
        return lastState == STATE_PRESSED;
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?