자바 백 엔 드 버튼 이벤트 감청 실현 (등록 시스템 급 단축 키)
4087 단어 자바 구현
자바 의 최 하층 은 jvm 이기 때문에 단순 한 자바 는 jvm 의 아래 운영 체제 의 상황 을 감지 할 수 없 기 때문에 단순히 자바 를 사용 하면 이 기능 을 완성 할 수 없습니다.
이 기능 을 실현 하려 면 시스템 의 갈고리 함 수 를 호출 해 야 하기 때문에 자바 에서 도 jni 호출 을 통 해 이 루어 져 야 하지만 시스템 함수 나 다른 언어 로 편 성 된 친구 들 에 게 는 어 려 운 문제 입 니 다.예전 에 비슷 한 기능 을 실현 한 것 은 모두 자신 이 c 를 통 해 시스템 의 갈고리 함 수 를 호출 한 다음 에 jni 를 통 해 호출 한 것 이 었 다. 자신 이 쓴 것 은 간단 한 수 요 를 만족 시 키 기만 하면 되 기 때문에 기능 과 프로그램 구조 도 비교적 간단 했다.나중에 외국 의 한 사이트 에서 하나의 구성 요소 인 'jitellitype' 이 우리 에 게 대부분의 기능 을 밀봉 해 주 었 고 구조 적 으로 자바 중의 사건 감청 체 제 를 사용 했다. 우 리 는 프로그램 에서 등록 만 하면 실현 할 수 있다. 다음은 간단 한 예 이다.
import com.melloware.jintellitype.HotkeyListener;
import com.melloware.jintellitype.JIntellitype;
public class HotKey implements HotkeyListener {
static final int KEY_1 = 88;
static final int KEY_2 = 89;
static final int KEY_3 = 90;
/**
*
*
* @param key:
*/
public void onHotKey(int key) {
switch (key) {
case KEY_1:
System.out.println("ctrl+alt+I .........");
break;
case KEY_2:
System.out.println("ctrl+alt+O .........");
break;
case KEY_3:
System.out.println(" ..........");
destroy();
}
}
/**
*
*/
void destroy() {
JIntellitype.getInstance().unregisterHotKey(KEY_1);
JIntellitype.getInstance().unregisterHotKey(KEY_2);
JIntellitype.getInstance().unregisterHotKey(KEY_3);
System.exit(0);
}
/**
*
*/
void initHotkey() {
// KEY_1 , , 0, ctrl+alt+I
JIntellitype.getInstance().registerHotKey(KEY_1, JIntellitype.MOD_CONTROL + JIntellitype.MOD_ALT,
(int) 'I');
JIntellitype.getInstance().registerHotKey(KEY_2, JIntellitype.MOD_CONTROL + JIntellitype.MOD_ALT,
(int) 'O');
JIntellitype.getInstance().registerHotKey(KEY_3, JIntellitype.MOD_CONTROL + JIntellitype.MOD_ALT,
(int) 'X');
JIntellitype.getInstance().addHotKeyListener(this);
}
public static void main(String[] args) {
HotKey key = new HotKey();
key.initHotkey();
//
while (true) {
try {
Thread.sleep(10000);
} catch (Exception ex) {
break;
}
}
}
}
대부분의 기능 을 봉인 해 준 구성 요 소 를 소개 합 니 다. jitellitype 이 고 구조 적 으로 자바 의 이벤트 감청 체 제 를 사용 합 니 다. 우 리 는 프로그램 에서 등록 만 하면 가능 합 니 다.사용 하기 편 하고 간단 합 니 다.
체인 을 훔 쳐 봐 도 될 지 모 르 겠 어 요.
여기 눌 러 주세요.
사용 방법:
다운로드 후 압축 패키지 입 니 다. jar 파일 과 dll 파일 이 있 습 니 다. dll 파일 은 System 32 디 렉 터 리 나 시스템 path 환경 변수 에 넣 습 니 다.jar 파일 이 프로젝트 를 가 져 오 면 됩 니 다.
실행 중 이러한 이상 이 발생 하면: Exception in thread "main" java. lang. NoClassDefFoundation Error: org / apache / commons / logging / LogFactory at com. melloware. intellitype. JIntellitype. < clinit > (JIntellitype. java: 57)
그것 은 jitellitype 이 apache 의 comons - logging 패 키 지 를 사 용 했 기 때 문 입 니 다. 가 져 오지 않 았 다 면 다운로드 해 야 합 니 다.
jar 파일 을 찾 을 수 있 는 사이트
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
데이터 구조 대기 열의 자바 실현 은 선형 과 체인 두 가지 방식 을 포함한다.실현 의 사고방식 은 다음 과 같다. 일반적인 방식 으로 먼저 Queue 의 인 터 페 이 스 를 정의 한 다음 에 이 인 터 페 이 스 를 실현 함으로써 선형 과 체인 식 의 두 가지 형식의 대기 열 을 실현 했다...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.