![](/img/trans.png)
[英]NullPointerException when trying to getText from another panel
[英]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.