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

用代码实现选择文字的问题
大虾们好,

  本小虾用以下代码模拟按键,打算实现一段文字的选择,但是组合键无效,

  把鼠标(光标)点击到 console 上某段文字后面,

  执行如下代码

  import java.awt.Robot;

  robot = new Robot();
  robot.keyPress(16) // shift
  robot.keyPress(36) // home
  robot.keyRelease(36) // home
  robot.keyRelease(16) // shift
 
  //Page Up, Page Down, 箭头等方式也不起作用,

  注: 通过手来按的话,是可以选择到文字的
   
  结果只看到光标移动,没有见到文字被选择

  哪位大虾指导一下,不盛感激。
 

------解决方案--------------------
应该用事件监听来处理
可以在KeyListner的KeyPressed事件里设置一个成员变量表示某个key被按下,KeyReleased事件取消成员变量的状态,然后再MouseMotionListener的mouseMoved事件中,结合该成员变量的状态来处理

------解决方案--------------------
看到有人说要加个Delay,不知道灵不灵:


robot = new Robot();
robot.keyPress(16) // shift
robot.delay(100);
robot.keyPress(36) // home
robot.keyRelease(36) // home
robot.delay(100);
robot.keyRelease(16) // shift

另外,楼主是不是用 KeyEvent.KV_SHIFT 这种常量会更好点点。。。
------解决方案--------------------
支持一下