Java 从另一个面板移除面板时停止执行线程
我有一个面板(B)在面板(a)内。 面板(B)开始执行线程并更新自己的GUI 但有一种情况是,当线程继续执行时,用户从面板(B)注销,而另一个面板(比如面板(C))代替了面板(B)Java 从另一个面板移除面板时停止执行线程,java,multithreading,jpanel,Java,Multithreading,Jpanel,我有一个面板(B)在面板(a)内。 面板(B)开始执行线程并更新自己的GUI 但有一种情况是,当线程继续执行时,用户从面板(B)注销,而另一个面板(比如面板(C))代替了面板(B) 我想在面板(B)不再可见时中断(停止)此线程…有什么建议吗?一个选项是向面板a添加一个ContainerListener。然后检查面板B是否被删除,并在面板B上调用“stopThread()”。我建议使用“stopThread()”方法创建一个接口(称之为接口C),为B创建自己的面板类,以便B扩展面板实现C 然后在C
我想在面板(B)不再可见时中断(停止)此线程…有什么建议吗?一个选项是向面板a添加一个ContainerListener。然后检查面板B是否被删除,并在面板B上调用“stopThread()”。我建议使用“stopThread()”方法创建一个接口(称之为接口C),为B创建自己的面板类,以便B扩展面板实现C 然后在ContainerListener.componentRemoved方法中,测试已删除的组件:
if (component instanceof C)
{
C c = (C)component;
c.stopThread();
}
您甚至可以包含startThread(),并在使用类似技术添加时调用它