我有一个 JavaFX 程序,我想在其中导入一个文件并从该文件中读取所有内容(应该是 .txt)并将其写入一个字符串,以便我可以对其进行处理。因为文件有时很大,让我的程序说“无响应”之类的,我想添加一个 ProgressBar,以显示当前的进度并阻止程序崩溃。
起初,我只是在对话框中添加了一个 ProgressBar,它会根据绑定打开和更新。但是 GUI 没有更新,所以我发现我必须做一个在后台运行的新线程,所以我的程序不会停止响应。所以我把所有的东西都打包成一个任务并用一个线程开始任务,但是现在带有 ProgressBar 的 Dialog 甚至没有出现,所以我调试它并发现程序甚至没有执行任务,就像, 没有做任何事情就过去了。
这是我当前的代码,我希望任何人都可以帮助我解决我的问题或向我解释任务/线程:
我的处理程序:
package application.handler;
import application.data.KTChat;
import application.gui.MyRootPane;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.control.Button;
import javafx.scene.control.MenuItem;
import javafx.stage.FileChooser;
import javafx.stage.Stage;
public class MyHandler implements EventHandler<ActionEvent> {
private MyRootPane mp;
private FileChooser fc;
private Stage primaryStage;
private KTChat kt;
public MyHandler(MyRootPane mp, Stage primaryStage) {
this.mp = mp;
fc = new FileChooser();
fc.getExtensionFilters().add(new FileChooser.ExtensionFilter("Text files (*.txt)", "*.txt"));
this.primaryStage = primaryStage;
kt = new KTChat(mp);
}
@Override
public …Run Code Online (Sandbox Code Playgroud)