我是Java的初学者,已经开始编写一个程序来读取文件中的文本,并希望将每行输出到JTextField
。
我想比较每一行数字,所以我需要一个字段,每行数据都会保持刷新。
我可以使用Visual Basic with loop,Me.refresh和system.thread.sleep
来完成。但我需要用Java实现它。
我使用System.out.println(num);
显示文件的所有行。
当我使用textArea.append(num + "\n");
输出它时,我只在到达结尾后显示所有行。 textArea = new JTextArea("",10,30);
如果我使用dataRead.setText(num);
输出它,我只会在到达结尾后显示最后一行。 dataRead = new JTextField(7);
有人可以帮忙吗?
答案 0 :(得分:0)
你有一个Swing线程问题,通过尝试读取Swing事件线程中的文件,你最终会占用线程,冻结你的GUI,直到读完成。我建议您创建一个后台线程,例如SwingWorker提供的后台线程,用于在文件中读取,然后在每一行之后,将该行发布到JTextField,也许如果您愿意,可以调用Thread.sleep(...)
在你的后台线程中。
另一种方法是一次性读取整个文件,再次在后台线程中读取,然后使用Swing Timer一次显示一行。