2017-05-18 101 views
-1

所以我試圖讀取用戶輸入使用掃描儀類。是否有一種簡單的方法可以使它在10秒後移動到下一代碼塊?謝謝設置用戶輸入時間限制(掃描儀)Java

+0

使用getCharacters()。toString();代替。檢查此:https://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/TextField.html#getCharacters - –

+0

@PetroGordiyevich你在說什麼? – shmosel

+0

對不起,回答了錯誤的問題。 –

回答

0

你可以使用Timer和TimerTask。 TimerTask將允許您在一段時間後運行任務,在這種情況下,您可以使用此任務停止等待用戶。

import java.util.Timer; 
import java.util.TimerTask; 

... 

TimerTask task = new TimerTask() 
{ 
    public void run() 
    { 
     if(str.equals("")) 
     { 
      System.out.println("you input nothing. exit..."); 
      System.exit(0); 
     } 
    }  
}; 

... 

Timer timer = new Timer(); 

timer.schedule(task, 10*1000); 

Scanner sc = new Scanner(System.in); 
String in = sc.readLine(); 

timer.cancel(); 

因此,如果用戶在10秒內沒有迴應,計時器將退出讀取輸入。我從這個最初的帖子偷走/改編了這個迴應: Time limit for an input