Выполнить действие после отпускания кнопки
У меня следующая проблема. У меня есть небольшая форма с кнопкой (мы говорим о 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 и запустите его в новом потоке, это должно решить вашу проблему