我知道如何使用Runnable
类实现线程,但是当我的网络任务从Action侦听器的匿名类中执行时,我遇到了实现它的问题。
在实现ActionListener
public class Main extends JFrame implements ActionListener, Runnable {
...
b1 = new JButton("OK");
b1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
MySocket sock1 = new SMTPSocket(s1.getText(),fromField.getText(),subjectField.getText());
}
}
});
}
现在,我想运行此代码,
MySocket sock1 = new SMTPSocket(s1.getText(),fromField.getText(),subjectField.getText());
在线程中但是因为它是从actionlistener的匿名类执行的,我怎么想在一个线程中执行它呢?
答案 0 :(得分:1)
创建一个名为startThread
的方法,并在buttn click listener
并在该方法中编写一个执行代码的线程..
试试这个..
b1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
startThread();
}
}
});
和startThread
方法将是这样的..
private void startThread() {
new Thread() {
public void run() {
MySocket sock1 = new SMTPSocket(s1.getText(),fromField.getText(),subjectField.getText());
}
}.start();
}