Если ваш код касается / инициализирует компонент JavaFX, то он должен использовать поток платформы JavaFX. Обойти это невозможно, для этого нужно , чтобы JavaFX работал правильно (в противном случае вы, вероятно, столкнетесь со всевозможными странными ошибками, связанными с потоками).
Это также относится и к Swing, хотя в JavaFX это имеет тенденцию применяться гораздо тщательнее, за исключением исключений, возникающих при касании чего-либо из неправильного потока. Это хорошая вещь, так как это отсутствие принуждения может быть кошмаром в больших проектах свинга - вы можете легко потратить дней , отслеживая источник ошибки до точки, где Операция пользовательского интерфейса выполнялась не в том потоке, и не было выдано предупреждение.
Существует одна (экспериментальная) опция виртуальной машины, которую вы можете передать (-Djavafx.embed.singleThread=true
), которая объединяет потоки платформы Swing и JavaFX, поэтому вам не нужно слишком много переходить между потоками пользовательского интерфейса, если вы используя оба набора инструментов. Однако используйте это в рабочем коде на свой страх и риск.