Потоки в программе

186
06 апреля 2018, 19:12

Добрый день(Скрины в ссылках ниже),возник вопрос. Запускается приложение цепляет fxml + Controller в котором есть бесконечный цикл. Я поверхностно знаком с GUI потоком (если я не ошибаюсь он отвечает за графическое отображение). И скорее всего именно на этом потоке программа заходит в вечный цикл и на нем висит. Соответственно код ниже строки

Parent root = FXMLLoader.load(getClass().getResource("fxml_css/server.fxml"));

и окно программы не отображается. Пытался поместить эту строку

Parent root = FXMLLoader.load(getClass().getResource("fxml_css/server.fxml"));

в Thread но ничего не дало. Этот код помещал в Platform :

primaryStage.setTitle("Server");
primaryStage.setScene(new Scene(root, 600, 378));
primaryStage.show();

но желаемого результата не получил.

Есть вариант перенести код, то есть оставить контроллер чистыми а весь код в нем кинуть в метод

public void start(Stage primaryStage) throws Exception

ниже формирования окна, тогда по идее работать будет НО доступ к полям на форме которые созданы в контроллере будут не доступны и придется все смешивать в один метод, я все таки люблю придерживаться хоть малейшего порядка ) Да и по любому есть вариант как-то обычный поток отправить выполнять цикл, а главным запустить окно, но что-то у меня не выходит. Подскажите пожалуйста как можно решить данную проблему ?

https://ibb.co/mo7FCH

https://ibb.co/mRwmKx

Answer 1

Получилось решить проблему, создал левый метод и обратился к нему в другом потоке

Нужно было просто поспать ), всем спасибо =)

Answer 2

Код работы tcp-сервера следует выполнять в рабочем (фоновом) потоке.

В зависимости от того, в каком виде ваш сервер будет взаимодействовать с пользовательским интерфейсом, Вы можете использовать как обычный new Thread(()->{...}).start();, так и какой-либо класс из пакета javafx.concurrent.

К примеру, вариант использования javafx.concurrent.Task для обновления прогрессбара есть в этом ответе: Работа с Progess Bar в JavaFX

READ ALSO
jar не видит стороннюю библиотеку

jar не видит стороннюю библиотеку

Проект работает, но при запуске сделанного jar выскакивает ошибка в командной строке, что отсутсвует библиотека, хоть в intellijn я ее добавилчто...

176
java,ArrayList,code morse

java,ArrayList,code morse

у меня задание написать программу в java, что-бы из простого алфавита переводил в азбуку морзе, нельзя использовать hashmap, hashset, выдает ошибку

163
Актуальны ли джава сервлеты?

Актуальны ли джава сервлеты?

Насколько я знаю джава апплеты мёртвая технология, не относится ли это к сервелетам?

157
Как построить пирамиду, применить к ней текстуру и осветить ее?

Как построить пирамиду, применить к ней текстуру и осветить ее?

Как построить пирамиду, применить к ней текстуру и осветить ее?

141