Java Swing: можно отправить ввод с клавиатуры робота в определенные окна JFrame? - PullRequest
2 голосов
/ 14 декабря 2011

Я использую стороннюю библиотеку Java, которая порождает новые окна JFrame.Как сделать java.awt.Robot для отправки щелчков и ввода с клавиатуры в это конкретное окно, когда оно появляется?Я бы запустил его в отдельном потоке, чтобы другие действия могли выполняться в главном приложении, пока робот отправляет входные данные в конкретное окно JFrame.

Обратите внимание, у меня нет доступа API к процессу, который порождаетэто окно JFrame.

В настоящее время, когда это окно JFrame свернуто или закрыто, робот продолжит посылать входные данные в любое видимое текущее окно JFrame.

1 Ответ

1 голос
/ 23 декабря 2011

Вы получаете все кадры, запущенные вашим приложением:

Frame[] frames = JFrame.getFrames();
//find the frame your looking for and call click(frame)

Щелкните по центру компонента

click(Component c){

//get center 
Dimension size = c.getSize();
Point center = new Point(size.width/2, size.height/2);

//you might want to check if the component is showing.

Robot.mouseMove(center.getX(), center.getY());
Robot.keyPress(KeyEvent.VK_A);

}
...