0

こんにちは、Eclipse を使用しており、Windows 7 システムで作業しています。BufferedReader クラスを使用してキーボードからいくつかの文字を読みたいと思います。私は Thread クラスでそのコードを使用しています:

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

問題は、スレッドを実行した後 (ループに入る)、いくつかのボタンを押して、enter(\n) を使用して何も起こらないことを確認することです。助けてください

4

3 に答える 3

1

バッファリングされたデータが失われています。BufferedReaderキャラクターごとに新しいものを作り続けないでください。ループの前に作成したものと同じものを使用します。

于 2013-01-02T23:18:34.737 に答える
0

私の問題を正確に言うことができます。私はそのようなウィンドウアプリを持っています: http://img846.imageshack.us/img846/5859/scaning.jpg 私はいくつかのボタンを押す必要があり(JTextFieldにフォーカスされていません)、それに基づいてJTableに位置を追加します. しかし、アプリを開いている間、コンソールにサインを入れることができません。とてもシンプルです。全画面表示のプログラムを開き、いくつかの文字を入力し、それに基づいて JTable に位置を追加したいだけです。これ以上明確にすることはできません。回答ありがとうございます。

于 2013-01-03T00:14:03.147 に答える
0

今、私は問題が何であるかを理解しています。サインを押すとすぐにバッファリングされると思っていましたが、コンソールに書き込む必要があります。コンソールに入力されていない押されたボタンを読み取る必要があります。たとえば、JTextFieldを初期化し、フォーカス時にそれを使用して記号を読むように誰かにアドバイスされました。しかし、それはエレガントな解像度ですか?

于 2013-01-02T23:40:31.507 に答える