⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 keyeventcodec.java

📁 一个远程控制的java测试程序源代码.转于网上
💻 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 + -