点击按钮时会运行以下线程。
open.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
calls();
}
});
private void calls() {
Thread t = new Thread(this);
t.start();
}
@Override
public void run() {
reads();
}
public void reads() {
....
....
counter++;
// The Thread should stop here right>
}
但它并没有结束。我正在使用thread.stop()
来阻止那里的线程。我知道柜台必须去的范围。我在UI中显示计数器值。如果我在计数器到达结束状态后单击打开按钮,则会显示Interrupted
异常。
答案 0 :(得分:1)
在函数外部定义t
对象,可能在构造函数中。然后你可以用这个来阻止它:
t.interrupt();
修改强>
Thread t;
public myclass()//your constructor
{
t=new Thread(this);
}
open.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
calls();
}
});
private void calls() {
t.start();
}
@Override
public void run() {
reads();
}
public void reads() {
....
....
counter++;
t.interrupt();// The Thread should stop here right>
}