在匿名动作侦听器中运行一个线程?

时间:2015-05-17 11:55:14

标签: java

我知道如何使用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的匿名类执行的,我怎么想在一个线程中执行它呢?

1 个答案:

答案 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();

}