簡體   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