Я изучаю java из «The Complete Reference» Герберта Шилдта. В этой книге сообщается, что если какая-либо часть вашего GUI должна делать то, что может потребовать больше времени для генерации события, тогда мы должны реализовать эту вещь как новый поток.Как запустить поток на JButton?
Итак, я создал графический интерфейс для отправки писем в мой почтовый ящик, который работает нормально, но для отправки почты требуется 2-3 секунды, и, следовательно, кнопка отправки также требует времени, чтобы вернуться в нормальное состояние (она остается нажатой пока слушатель не ответит назад, так как In Listener, я внедрил код для отправки почты).
Чтобы избежать этого, я пытаюсь запустить поток на этой кнопке «Отправить», чтобы при нажатии кнопки mouseEvent будет создан & на этом mouseEvent, я хочу запустить поток, чтобы Слушатель отвечает сразу же, а почта отправляется через поток.
Как реализовать эту схему? Я попытался внедрить новый Runnable в качестве внутреннего класса в MouseEvent, но я не могу понять, как я могу вызвать метод start!
код большой, поэтому я поставлю здесь только код «Отправить кнопку».
sendButton.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent me){
String id=emailIdField.getText();
String subject=subjectField.getText();
String body=mailBodyArea.getText();
String user= "[email protected]";
String pass="password";
String host="smtp.gmail.com";
sendEmail= new SendEmail(); // class which actually sends the mail. defined in other file.
sendEmail.sendMail(id, user, subject ,body ,host, user, pass);
}
});
Я хочу запустить код внутри этой функции MouseClicked в качестве новой темы. То, что я пытался до сих пор есть,
sendButton.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent me){
new Runnable(){
public void run(){
String id=emailIdField.getText();
String subject=subjectField.getText();
String body=mailBodyArea.getText();
System.out.println(id);
System.out.println(subject);
System.out.println(body);
String user= "[email protected]";
String pass="impe(*&amit";
String host="smtp.gmail.com";
sendEmail= new SendEmail();
sendEmail.sendMail(id, user, subject ,body ,host, user, pass);
}
};
});
Но теперь я не знаю, как, как я называю метод запуска к этой теме? Пожалуйста, порекомендуйте.
т Thread = новая тема (работоспособный); t.start(); – rkosegi
@rkosegi где именно я пишу это заявление? –