Выполнить действие после отпускания кнопки

У меня следующая проблема. У меня есть небольшая форма с кнопкой (мы говорим о JAVA здесь), которая отправляет данные в форме через сокет-соединение с сервером. Теперь, когда я нажимаю кнопку, она устанавливает это единственное соединение, но в то же время кнопка остается "нажатой", если вы меня понимаете. После того, как действие, активируемое actionlistener, завершено (выполнено соединение, отправлены данные, закрыто соединение), кнопка отпускается.

Теперь мой вопрос: есть ли простое решение для этого, и если да (или нет), как я могу это исправить?

Заранее спасибо.

submit.addActionListener(this);

И это часть, но я надеюсь, что это было ясно указано в тексте.

public void actionPerformed(ActionEvent ae) {
        if (ae.getSource() == submit) {
            boodschap = testtext.getText();
//            System.out.println(boodschap);
            try {
                try {
                    UserConnection connect = new UserConnection(boodschap);
                } catch (SQLException ex) {
                    Logger.getLogger(UserAction.class.getName()).log(Level.SEVERE, null, ex);
                }
            } catch (ClassNotFoundException ex) {
                Logger.getLogger(UserAction.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
}

(о, этот код работает как шарм. В коде нет ничего плохого, он просто отображается, чтобы дать вам представление о том, что я имею в виду.)

1 ответ

Решение

Проблема в том, что вы выполняете длительную операцию в потоке пользовательского интерфейса. Если вы поместите свой код в SwingWorker или даже в Runnable и запустите его в новом потоке, это должно решить вашу проблему

Другие вопросы по тегам