Как в JavaFX создать поток который будет добавлять Label, пока не нажать кнопку Stop?
JavaFX, как и многие другие gui-библиотеки, однопоточна. При создании окна создаётся Event Dispatch Thread, внутри которого будет работать цикл событий и обработчики событий. Вы не должны пытаться из главного потока или любого другого потока взаимодействовать с элементами графического интерфейса - это приведёт к сбою. Вы не должны внутри обработчиков событий запускать потоки - это приведёт к сбою. Если вам надо из другого потока изменить, например, текст метки, то придётся создать задание для EDT:Platform.runLater((() -> someLabel.setText("Hello"));
Если вам нужно внутри обработчика нажатия на кнопку запустить на выполнение длительную задачу, придётся использовать Task и Service:public class Example extends Application {
    ...

    btn.setOnAction(act -> {
        Service<Void> service = new Service<Void>() {
            @Override
            protected Task<Void> createTask() {
                return new Task<Void>() {
                    @Override
                    protected Void call() throws Exception {
                        // Долгий код
                        return null;
                    }
                };
            }
        };
        service.start();
    });
}ПримечаниеНа самом деле поток обработки событий в JavaFX называется JavaFX Application Thread, но это непринципиально.
тут лучше применить обратную стратегию.
создаем поток, который долго думает, а из него как либо информируем поток гуи, дабы он уже создавал лэйбл.