2013-01-02 60 views
0

您好我正在使用eclipse和我在Windows 7系統上工作。 我想用BufferedReader類閱讀一些字符形式的鍵盤。 我用了Thread類代碼:無法正確使用BufferedReader類

public void run() 
{ 
    int ch; 
    while(!done) 
    { 
     try 
     { 
      BufferedReader keyboard = new BufferedReader(new InputStreamReader(System.in)); 
      ch = keyboard.read(); 
      System.out.println(ch); 
     } 
     catch (IOException e) 
     { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
     //System.out.println(s); 
     System.out.println("petla"); 
    } 
} 

的問題是,我運行的線程後(它進入到循環),我按一些按鈕並確認使用回車(\ n)的什麼事都沒有發生。請幫助

+0

看起來問題不在於此代碼部分。 –

+0

@LaszloPapp看起來像是給我的。 – EJP

+0

使用後至少關閉流! – xagyg

回答

1

您正在丟失緩衝數據。不要爲每個角色創建一個新的BufferedReader。使用循環之前創建的同一個。

+0

是的你是對的,但這不是重點。我忘了補充說它是Swing應用程序。有可能使用這個類與窗口應用程序? – daniio

0

現在我明白了問題所在。我認爲,當我按下標誌時,它會立即緩衝,但我必須將其寫入控制檯。我需要閱讀未在CONSOL中輸入的按鈕。有人建議我例如初始化JTextField,並使用焦點讀取符號。但它是優雅的決議?

0

好的,以確定我的問題。我有一個窗口應用程序,看起來像這樣: http://img846.imageshack.us/img846/5859/scaning.jpg 我需要按下一些按鈕(不專注於JTextField),並在此基礎上添加一些位置的JTable。但是,當我打開我的應用程序時,我無法將標誌放到控制檯上。這很簡單。我只想打開我的全屏程序,鍵入一些字符,並在此基礎上添加位置給JTable。我不能說得更清楚。 Thx迴應。