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

现在我明白了问题所在。我以为当我按下符号时,它会立即被缓冲,但我必须将它写入控制台。我需要阅读未在控制台中输入的按下按钮。例如,有人建议我初始化 JTextField 并使用焦点读取符号。但它是优雅的分辨率吗?

于 2013-01-02T23:40:31.507 回答
0

确定我的问题。我有一个看起来像这样的窗口应用程序:http: //img846.imageshack.us/img846/5859/scaning.jpg 我需要按下一些按钮(不集中在 JTextField 中)并在此基础上向 JTable 添加一些位置. 但是,当我打开我的应用程序时,我无法在控制台上放置标志。这很简单。我只想打开我的全屏程序,输入一些字符并在此基础上将位置添加到 JTable。我不能说得更清楚。谢谢回复。

于 2013-01-03T00:14:03.147 回答