2017-09-05 15 views
0

簡単なロボットを実行してキーボード入力で停止しようとしています。 ロボットは問題なく動作しますが、私はラインキーボード入力によるロボットの停止

String F = Key.nextLine(); 

を使用する場合、それは働いてからプログラムを停止します(私はそれを取り出すときに、プログラムが動作し続けて)

なぜこの出来事はありますか?それを修正する方法は? これはロボットを停止する正しい方法ですか?

import java.awt.AWTException; 
import java.awt.Color; 
import java.awt.Robot; 
import java.util.Scanner; 

public class MyBot { 
    public static void main(String[] args) 
      throws AWTException{ 

     Robot myRobot = new Robot(); 

     StopRobot(); 

     for(int i=0;i<300;i++){//the robot works just fine 
      Color color = myRobot.getPixelColor(i,190); 
      if((color.getRed()==0 && color.getGreen()==0 && color.getBlue()==0)){ 
       myRobot.mouseMove(i,190); 
      } 
     } 
    } 

    public static void StopRobot() { 
     Scanner Key = new Scanner(System.in); 

     String F = Key.nextLine(); // this line stops my program 

     if (F.equals(" ")) 
      System.exit(0);// 'Space' is the button to stop the program 
    } 
} 

ありがとうございます。

+0

'nextLine'は入力を待っています(期待どおり) - 何を期待していますか?あなたは ''を試しましたか? –

+0

@ScaryWombat私はを押して忘れてしまいました。しかし、プログラムが最初に実行されなければ、動作しないようにする必要はありません。 – amirsoltani

答えて

0

スペースバーに入るときに方法を停止しますか?

私はあなたがしばらくの間、スペース文字を待っているか、またはあなたのStopRobotメソッドが本当のフラグを返すかどうかについてステートメントを待つ必要があると思います。

import java.awt.AWTException; 
import java.awt.Color; 
import java.awt.Robot; 
import java.util.Scanner; 

public class MyBot { 
    public static void main(String[] args) 
      throws AWTException{ 

     Robot myRobot = new Robot(); 

     while(!StopRobot()) 
     { 
      for(int i=0;i<300;i++){//the robot works just fine 
       Color color = myRobot.getPixelColor(i,190); 

       if((color.getRed()==0 && color.getGreen()==0 && color.getBlue()==0)){ 
        myRobot.mouseMove(i,190); 
       } 
      } 
     } 
    } 

    public static boolean StopRobot() { 
     boolean isStop = false; 
     Scanner Key = new Scanner(System.in); 

     System.out.println("A"); // A prints 
     String F = Key.nextLine(); 

     System.out.println("B"); // B does not print 

     if (F.equals(" ")) 
     { 
      System.out.println("C"); // B does not print 
      //System.exit(0);// 'Space' is the button to stop the program 
      isStop = true; 

     } 

     return isStop; 
    } 
} 
+0

ようこそ。 – tommybee

関連する問題