📄 keyeventcodec.java
字号:
/*
* @(#)MouseEventCodec.java 1.00 2005-9-1
*
* Copyright 2005 BeanSoft Studio. All rights reserved.
* PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
package studio.beansoft.remotecontrol;
import java.awt.Component;
import java.awt.Label;
import java.awt.event.KeyEvent;
import java.util.ArrayList;
import java.util.StringTokenizer;
/**
* MouseEventCodec
* Encode or decode java.awt.event.KeyEvent events to string. The format is:
* {event id},{key code},{when}|{next event...
* eg: 401,78,1125548623674|402,80,1125548623800
*
* Chinese documents:
* 编码或者解码 java.awt.event.KeyEvent 为字符串. 编码格式为:
* {事件 id},{键码},{发生时间}|{下一事件...
* 示例: 401,78,1125548623674|402,80,1125548623800
*
* @author BeanSoft
* @version 1.00 2005-9-1
*/
public class KeyEventCodec {
/** A component used to be a event source to avoid null constructors */
private static final Component source = new Label();
/**
* Encoding a series keyboard events to a long string.
* @param eventList an ArrayList contains KeyEvent
*
* @return String contains encoded key events
*/
public static String keyEventToString(ArrayList eventList) {
if(eventList == null || eventList.size() == 0) return "";
StringBuffer buff = new StringBuffer();
for(int i = 0; i < eventList.size(); i++) {
KeyEvent e = (KeyEvent) eventList.get(i);
buff.append(e.getID()).append(",");
buff.append(e.getKeyCode()).append(",");
buff.append(e.getWhen());
buff.append("|");
}
return buff.toString();
}
/**
* Decode string to event list.
* @param events String contains encoded key events
* @return an ArrayList contains KeyEvent
*/
public static ArrayList stringToKeyEvent(String events) {
if(events == null || events.length() == 0) {
return null;
}
ArrayList list = new ArrayList();
StringTokenizer token = new StringTokenizer(events, "|");
while(token.hasMoreElements()) {
StringTokenizer stringTokenizer = new StringTokenizer(token.nextElement().toString(), ",");
int id = 0, keyCode = 0, when = 0;
if(stringTokenizer.hasMoreElements()) {
id = parseInt(stringTokenizer.nextElement().toString());
}
if(stringTokenizer.hasMoreElements()) {
keyCode = parseInt(stringTokenizer.nextElement().toString());
}
if(stringTokenizer.hasMoreElements()) {
when = parseInt(stringTokenizer.nextElement().toString());
}
KeyEvent event = new KeyEvent(source, id, when, 0, keyCode, (char)keyCode);
list.add(event);
}
return list;
}
/**
* Parse a string to an interger.
* 将字符串转换为 int.
*
* @param input
* the string to input
* @date 2005-07-29
* @return a int, if failed, returns 0
*/
public static int parseInt(String input) {
try {
return Integer.parseInt(input);
} catch (Exception e) {
// TODO: handle exception
}
return 0;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -