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