日期:2014-05-20  浏览次数:20763 次

请教J2SE中对鼠标位置的操作(高手进)
请问如何根据2个已知的数值来设置鼠标的位置。

(鼠标的位置是相对于WINDOWS桌面的)

------解决方案--------------------
你是说swing吧?
再窗体的事件里可以获取
相对WINDOWS好像比较难...
用基于windows的开发工具也不好实现那
要用HOOK
------解决方案--------------------
import java.io.*;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
/**
* 支持脚本文件的按键控制程序
*/
public class KeySprite{
public static void main(String[] args){
String filename = "test.t ";
try{
//读取配置文件
Vector v = readFile(filename);
//执行文件
parseVector(v);

}catch(IOException e){
System.out.println( "配置文件错误 ");
}catch(Exception e){
System.out.println( "其他错误 ");
}
}
/**
* 读取文件到Vector中
* @param filepath 文件路径
*/
public static Vector readFile(String filepath) throws IOException{
Vector v = new Vector();

//文件缓冲输入流
BufferedReader br = new BufferedReader(
new InputStreamReader(
new FileInputStream(filepath)));
//读取数据
String s = br.readLine();
while(s != null){
//添加到v
v.add(s);
//读取下一行
s = br.readLine();
}
//关闭输入流
br.close();
//返回数据
return v;
}
/**
* 解析读到的Vector,并执行对应的操作
* @param v Vector对象
*/
public static void parseVector(Vector v){
int size = v.size();

try{
//创建Robot对象
Robot r = new Robot();

for(int i = 0;i < size;i++){
String s = (String)v.get(i);
//分解
String[] data = s.split( " ");
//解析执行
if(data[0].equals( "移动 ")){
//获得坐标
int x = Integer.parseInt(data[1]);
int y = Integer.parseInt(data[2]);
//移动
r.mouseMove(x,y);
}else if(data[0].equals( "按键 ")){
//获得按键种类
char c = data[1].toLowerCase().charAt(0);
//按键
r.keyPress(c);
//释放
r.keyRelease(c);
}else if(data[0].equals( "暂停 ")){
//获得暂停时间
int time = Integer.parseInt(data[1]);
//暂停
Thread.sleep(time);
}
}
}catch(Exception e){
e.printStackTrace();
}
}
}

供你参考