繁体   English   中英

从另一个面板中删除一个面板时,停止执行线程

[英]Stop execution of a thread when a panel is removed from another panel

我在面板(A)中有一个面板(B)。 面板(B)开始执行线程并更新其自己的GUI。

但是在某些情况下,用户注销面板(B),而其他一些面板(例如Panel(C))代替(B),而线程继续执行。

当面板(B)不再可见时,我想中断(停止)该线程...有什么建议吗?

一种选择是将一个ContainerListener添加到面板A。然后检查是否删除了面板B并在面板B上调用“ stopThread()”。我建议使用“ stopThread()”方法创建一个接口(调用介面C),为B建立您自己的Panel类,以使B扩展Panel实现C。

然后在ContainerListener.componentRemoved方法中,测试已删除的组件:

if (component instanceof C)
{
  C c = (C)component;
  c.stopThread();
}

您甚至可以包含一个startThread(),并在使用类似技术添加时调用它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM