我有一个swing应用程序。点击菜单栏上的menuItem后,我试图进行API调用,这将需要一些时间。在SwingUtilities.invokeLater()中杀死一个线程
我不希望Swing应用卡住/挂起,直到API调用给出结果,所以我使用了SwingUtilities.invokeLater来分离出一个新产生的线程来处理API调用。以下是上述
public void actionPerformed(ActionEvent e){
Object src=e.getSource();
if(src.equals(theJMenuItemClicked)){
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
//apicall here
}
})
}
代码只要API调用线程运行我展示一个JDialog有消息说“进展API调用”和“中止线程”按钮。
我想通过单击Jdialog中的“ABort Thread”按钮来终止线程。
如果是普通线程,我们有一个Thread t = new Thread(new Runnable())
,我们调用t.stop
。
如何获取由SwingUtilities产生的特定线程实例,以便我可以在其上调用一个停止点?用更简单的话来说,我怎样才能杀死上面创建的线程?