2011-12-13 2 views
2

J'utilise une bibliothèque java tierce qui génère de nouvelles fenêtres JFrame. Comment est-ce que je fais java.awt.Robot pour envoyer des clics et des entrées de clavier à cette fenêtre spécifique quand elle apparaît? Je l'exécuterais dans un thread séparé afin que d'autres activités puissent être effectuées sur l'application principale pendant que le robot envoie des entrées à la fenêtre JFrame spécifique.Java Swing: Possibilité d'envoyer une entrée de clavier robotisée à des fenêtres JFrame spécifiques?

Remarque, je n'ai pas d'accès api au processus qui engendre cette fenêtre JFrame.

Actuellement, lorsque la fenêtre JFrame est réduite ou fermée, le robot continue à envoyer des entrées à la fenêtre JFrame courante.

+0

comment obtenez-vous la main sur le cadre donné naissance? – kleopatra

+0

ne sais pas ce que vous voulez dire? il est déclenché par un événement produit par la bibliothèque elle-même pendant l'exécution. il n'y a pas d'API pour accéder à cet événement. – KJW

Répondre

1

Vous obtenez tous les cadres lancés par votre application:

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

Cliquez sur le centre d'un composant

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); 

} 
+0

je vous remercie bonne réponse. – KJW

Questions connexes