gpt4 book ai didi

java - JTextField 中的输出,每行读取时都能保持刷新

转载 作者:太空宇宙 更新时间:2023-11-04 14:52:43 24 4
gpt4 key购买 nike

我是 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 一次显示每一行。

关于java - JTextField 中的输出,每行读取时都能保持刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23576911/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com