Я использую JAVA FXML GUI для анализа текстового файла. Пользователь может выбрать файл для разбора, а затем нажать "загрузить". Когда пользователь нажимает "load", файл получает синтаксический анализ, и многие строки добавляются в ArrayList. Затем пользователь выполняет поиск и манипулирование текстом, который является синтаксическим анализом, который хранится в ArrayList.
Иногда, загружая/записывая файл в ArrayList или манипулируя некоторыми строками, графический интерфейс не реагирует. Как я могу отделить процесс 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);
}
}
Это случай учебника для использования многопоточности.
См. Эту документацию по JavaFX для получения информации и руководств по ее использованию.