如何在加载文件时保持 Java FXML 处于活动状态

How to keep Java FXML active while file is loading

我正在使用 JAVA FXML GUI 来解析文本文件。用户可以select 解析哪个文件然后按"load"。当用户单击 "load" 时,文件被解析并且许多行被添加到 ArrayList 中。然后,用户搜索并操作存储在 ArrayList 中的解析文本。

有时 loading/writing 将文件添加到 ArrayList 或操作某些行时,GUI 没有响应。如何将 GUI 进程与 ArrayList 处理分开,以便用户始终可以访问 GUI?

下面的代码启动我的应用程序:

package javafxapp;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;

public class Javafxapp extends Application {

@Override
public void start(Stage stage) throws Exception {
    Parent root = FXMLLoader.load(getClass().getResource("FXMLDocument.fxml"));

    Scene scene = new Scene(root);

    stage.setScene(scene);
    stage.show();
    FXMLDocumentController controller = new FXMLDocumentController();
    controller.openingSound();

}

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
    launch(args);
}

}

这是多线程使用的教科书案例

有关如何开始使用它的信息和教程,请参阅 this JavaFX 文档。