Java Swing GUI зависает

Я пишу клиентское / серверное приложение Java с использованием сокетов, и вот проблема:

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

кнопка actionPerformed метод

private void listenButtonActionPerformed(java.awt.event.ActionEvent evt) {                                             
    int port = Integer.parseInt(portTextfield.getText(), 10);

    try {
        socket.listen(port);
    } catch (IOException ex) {
    }
}

Вот метод socket.listen

public static void listen() throws IOException {
    ServerSocket ss = new ServerSocket(port);

    while (true)
        new socket(ss.accept());
}

& Quot; гнездо & Quot; класс расширяет & quot; Thread & quot;
Поэтому после того, как ss.accept () возвращает значение, он создает новый экземпляр сокета в отдельном потоке.

После нажатия кнопки графический интерфейс останавливается, потому что внутри метода socket.listen существует бесконечный цикл. Как я могу избежать этого?

Ответы на вопрос(5)

Ваш ответ на вопрос