Почему вы используете SwingWorker в приложении JavaFX? Если ваши графики вычисляются для отображения в приложении JavaFX, нет причин для использования Thread Dispatch Thread (AWT). Если я не ошибаюсь, с выпуском JDK 8, JavaFX Application Thread и Thread Dispatch Thread will become one, так что вам пока нет причины использовать SwingWorker. Если я действительно ошибаюсь, все равно нет причин использовать SwingWorker. Хотя возможно сочетание компонентов Swing в приложениях JavaFX, вы должны использовать EDT только при манипулировании компонентами Swing, а не с узлами JavaFX. Следующая ссылка говорит, что это:
... поток приложения JavaFX является другим потоком из свинга и AWT событие диспетчерского Thread (EDT), поэтому необходимо соблюдать осторожность при внедрении JavaFX кода в Swing-приложения ...
Источник: http://docs.oracle.com/javafx/2/architecture/jfxpub-architecture.htm
чтобы узнать, как вы можете поместить процессы должны быть сделаны в фоновом режиме, а также выяснить, какой поток отвечает за обработку элементов JavaFX, проверить эту ссылку:
http://docs.oracle.com/javafx/2/threads/jfxpub-threads.htm
Что касается вашего вопроса, я считаю, что начало приложения JavaFX следует вызывать только один раз. Настолько много, что при запуске приложения JavaFX поток основного метода захватывается и возвращается только при завершении приложения JavaFX. Просто посмотрите Application DOC (особенно this часть). Следует также отметить, что жизненный цикл приложения JavaFX задается следующими шагами:
Жизненный цикл
Точка входа для приложений JavaFX является класс Application. Среда выполнения JavaFX выполняет следующие действия, чтобы всякий раз, когда приложение запущено:
- Создает экземпляр указанного класса Application
- вызывает метод инициализации()
- вызывает начальную (javafx.stage. Этап)
- Ожидает, что приложение закончит работу, когда произойдет один из : приложение вызывает Платформа.Выход() последнее окно было закрыто, а атрибут implicitExit на платформе верно
- вызывает метод
Вы можете использовать неправильный подход остановки(). Я считаю, что вы должны оставить приложение JavaFX запущенным, пока вы что-то обрабатываете. После того как вы обработали то, что хотите в фоновом режиме, вы должны сделать приложение JavaFX показать результаты. Способ запуска приложения JavaFX во время обработки в фоновом режиме полностью зависит от вас. Возможно, вам нужно скрыть окно, пока что-то будет обработано, и снова отобразите его с помощью вашей диаграммы. Как я уже сказал, это то, что вам придется решать. Я рекомендую вам ознакомиться с документацией по классам, относящейся к оконной системе, начиная с Window, а затем Stage.
Любые вопросы, мы здесь. Удачи! :)
EDIT:
Из того, что я вижу, то jewelsea пользователь правильно. По-видимому, не является уверенным, что EDT и Application Application Java станут одним из них (было бы интересно, если бы это произошло). Но в любом случае будьте осторожны, чтобы не путать себя с использованием обоих потоков.
В вашем [предыдущем вопросе] (http://stackoverflow.com/questions/21132278/is-it-possible-to-draw-graphs-using-javafx-in-a-normal-java-application), Себастьян дал ответ для этого: используйте 'JFXPanel'. –