gpt4 book ai didi

java - 在匿名操作监听器中运行线程?

转载 作者:行者123 更新时间:2023-12-01 11:32:34 25 4
gpt4 key购买 nike

我知道如何使用 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());

在线程中,但由于它是从 Action 监听器的匿名类执行的,我该如何在线程中执行它?

最佳答案

创建一个名为 startThread 的方法,并在按钮点击监听器上调用此方法

并在该方法中编写一个将执行您的代码的线程..

试试这个..

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

}

关于java - 在匿名操作监听器中运行线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30286705/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com