Итак, я пытаюсь сделать программу типа чата с помощью JavaFX для графического интерфейса. У меня это так, что класс, который действует как сервер, будет зацикливаться и продолжать добавлять к нему клиентские соединения.JavaFX 8 метод инициализации
public void serverconnection()
{
// portnumber was saved from constructor
try (ServerSocket socket = new ServerSocket(this.portnumber))
{
// loop is a bool set to true
while (loop)
{
// this class extends Thread and has its own overwritten start method
new myclass(socket.accept()).start();
}
}
catch (IOException e)
{
System.exit(404);
}
}
так что проблема (я предполагаю) был, этот цикл продолжает цикл до тех пор, пока программа не закрывается. но так как я звала это в методе Инициализировать JavaFX в
public void initialize(URL url, ResourceBundle rb)
{
// constructor, nothing here is needed for this post
myclass z = new myclass(45234);
// problem here, since this has a loop, but
z.serverconnection();
// gui wont load till after this is done
// but serverconnection is only done after program ends
}
проблема с этим не, по-видимому, GUI не будет загрузить только после инициализации закончена, но она не будет завершена, пока программа не закроется. После поиска в Google я не смог найти никаких исправлений. Мне нужен способ вызова метода, который будет делать все это, ПОСЛЕ завершения процедуры инициализации. Мой клиентский класс похож на этот, но методы для подключения к ним активируются при событиях при нажатии кнопки входа в систему. Для этого serveride один, я пытаюсь начать без какого-либо взаимодействия с пользователем. так есть способ вызова метода или выполнения этой работы ПОСЛЕ инициализации метода?
Рассматривали ли вы добавление кнопки в пользовательском интерфейсе, щелчок по которой вызовет этот метод? – NaveenBharadwaj
@NaveenBharadwaj Я хотел попытаться избежать этого, но если их нет другого пути, я добавлю один –
Используя функцию параллелизма Java FutureTask, вы можете выполнять задачи позже. Посмотрите, работает ли это для вас. Если это не так, вам нужно разрешить инициализировать(). Таким образом, добавление кнопки станет необходимым. – NaveenBharadwaj