Как сохранить Java FXML активным во время загрузки файла

1

Я использую 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);
}

}

  • 0
    "Как сделать одно, когда происходит другое?" Звучит как случай для многопоточности.
Теги:
arraylist
user-interface
fxml

1 ответ

1
Лучший ответ

Это случай учебника для использования многопоточности.

См. Эту документацию по JavaFX для получения информации и руководств по ее использованию.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню