2011-10-20 5 views
1

私たちは障害者のためのエミュレータを作っています。このアプリには、現時点でテストしているデスクトップ領域があります。私はどのようにして1つのマウスクリックをプログラムで生成できますか?クリック間隔は100 msです。1回のマウス+ 1回のキーボードクリックを生成するにはどうすればよいですか?

EDIT

これはあなたの提案からのコードです。

import java.awt.Robot; 
import java.io.Console; 

import javax.swing.Timer; 

public class Start { 

    /** 
    * @param args 
    */ 
    public static void main(String[] args) { 
     // TODO Auto-generated method stub 
     Timer timer = new Timer(100, new ActionListener() { 
       private final Robot robot = new Robot(); 

       public void actionPerformed(ActionEvent evt) { 
       robot.mousePress(1); 
       robot.mouseRelease(1); 
       robot.keyPress(KeyEvent.VK_A); 
       robot.mouseMove(55, 145); 
       } 
      }); 
    } 
} 

スナップショットには5つのエラーが表示されます。

答えて

4

プログラムで、マウスのクリックやキーボードストロークを生成するために使用することができRobotクラスを見てみましょう。 Swing Timerクラスと組み合わせて、これらのイベントを定期的に生成することができます。例えば

Timer timer = new Timer(100, new ActionListener() { 
    private final Robot robot = new Robot(); 

    public void actionPerformed(ActionEvent evt) { 
    robot.mousePress(1); 
    robot.mouseRelease(1); 
    robot.keyPress(KeyEvent.VK_A); 
    } 
}); 
+0

うわー簡単です:)。あなたが実際の状況で何らかのオブジェクトをマウスでクリックすると、XとY座標がマウスクリックイベントとともに送信されます。マウスのクリックに加えて、これらの座標(スクリーンスコープから外れるランダムなもの)を渡すことは可能ですか? – sandalone

+1

mouseMove(int x、int y)を使用してクリックを生成する前にマウスを移動する必要があります。これらは画面座標なので、Javaアプリケーションのウィンドウ内を常にクリックしたい場合は、計算を行う必要があります。 – Adamski

+0

インポート時にプログラムが壊れます。タイマーとロボットのためにどのクラスをインポートする必要がありますか?私は 'import java.swing.Timer'を試みましたが、あなたの引数は許されません! – sandalone

関連する問題