无法正常使用BufferedReader类

时间:2013-01-02 23:10:33

标签: java keyboard bufferedreader

您好我正在使用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)没有任何事情发生。请帮忙

3 个答案:

答案 0 :(得分:1)

您正在丢失缓冲数据。不要为每个角色创建新的BufferedReader。使用在循环之前创建的同一个。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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