我有一个摇摆应用程序。单击菜单栏上的 menuItem 后,我正在尝试进行 API 调用,这可能需要一些时间。
在 API 调用给出结果之前,我不希望 Swing 应用程序卡住/挂起,因此我使用 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 call in Progress”和一个“Abort Thread”按钮。
我想在单击 Jdialog 中的“Abort Thread”按钮时终止该线程。
如果它是一个普通线程,我们有 aThread t = new Thread(new Runnable())
并且我们在同一线程上调用 a t.stop
。
如何获取 SwingUtilities 生成的特定线程实例,以便我可以停止它?用更简单的话来说,我怎样才能杀死上面创建的线程?