JAVA Robot类 操作快捷键的具体先后问题

这个问题可能不太容易说清楚,是这样的,我希望在ROBOT操作快捷键ctrl+c复制文本后马上从剪贴板从特到该文本。代码如下protectedStringgetClipbo... 这个问题可能不太容易说清楚,是这样的,我希望在ROBOT操作快捷键 ctrl+c 复制文本后马上从剪贴板从特到该文本。
代码如下
protected String getClipboardText(Clipboard clip) throws Exception {
// 获取剪切板中的内容
Transferable clipT = clip.getContents(null);
if (clipT != null) {
// 检查内容是否是文本类型
if (clipT.isDataFlavorSupported(DataFlavor.stringFlavor))
return (String) clipT.getTransferData(DataFlavor.stringFlavor);
}
return null;
}

public void onHotKey(int aIdentifier) {
if(aIdentifier==88)
copy();

//output("WM_HOTKEY message received " + Integer.toString(aIdentifier));
}

public void copy()
{
try {
Robot robot = new Robot();

robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_C);
robot.keyRelease(KeyEvent.VK_C);
robot.keyRelease(KeyEvent.VK_CONTROL);

} catch (AWTException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void getThetext() {
try {
output(getClipboardText(this.sysc));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

当我按下 win+A的时候映射到ctrl+c来复制文本。然后程序得到文本。但是奇怪的是
在copy()函数调用之后,取得剪贴板中的string并不是当前复制的文本,而是上一次复制的文本,看起来就像是复制过程在粘贴之前。也就是说每一次都是先从剪贴板拿出,再复制。。。。。。
为什么会这样?
robot在调用 press ctrl+c之后并没有马上执行吗?
展开
 我来答
百度网友845f74e61
2011-12-05 · TA获得超过6929个赞
知道大有可为答主
回答量:4050
采纳率:50%
帮助的人:1637万
展开全部
不是很明白你说的具体内容
不过你的代码可能有问题

robot robot.keyPress(KeyEvent.VK_CONTROL);
类似这样的方法,应该有一个按下,一个释放,没看到你有释放的代码,这样就相当于你按住键没有放开,你可以试一下,在键盘上这样做的话,只有等到下一次按键,才会使上一次的按键释放掉。

另外。不知道你要复制什么文本,如果是程序的控制的话,我记都,Text,JTextArea这一类的控制都有copy方法,可以将你选择的内容放到内存的剪贴版里,不需要你自己来写实现。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
JinCeon
2011-12-03 · TA获得超过695个赞
知道小有建树答主
回答量:350
采纳率:0%
帮助的人:410万
展开全部
output(getClipboardText(this.sysc));
this.sysc是什么???
更多追问追答
追问
是系统的剪贴板的对象
private Clipboard sysc = Toolkit.getDefaultToolkit().getSystemClipboard();
就是这个,忘了贴上来了
追答
我想知道你是怎样调用你那些方法的。从你给出的代码里看不出你怎样调用。
另外你的代码风格很不好。

r.keypress() 是不是在函数返回的时候就马上生效?
是的
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-12-03
展开全部
把你的代码全部贴出来
追问
全部很多啊,而且用到了第三方的包。。。。
这样吧,我只想知道。robot类所调用的函数
r.keypress() 是不是再函数返回的时候就马上生效?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
霧鎖樓臺
2011-12-06 · TA获得超过226个赞
知道小有建树答主
回答量:175
采纳率:0%
帮助的人:106万
展开全部
有个东东叫做剪贴板查看器,你的明白?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
彩光沉m
2011-12-24 · TA获得超过663个赞
知道大有可为答主
回答量:1575
采纳率:0%
帮助的人:2103万
展开全部
去相关论坛发帖求助
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 4条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式