Re: [問題] SWT Browser

看板java作者 (null)時間17年前 (2008/08/16 00:00), 編輯推噓3(302)
留言5則, 3人參與, 最新討論串4/5 (看更多)
※ 引述《slalala (S-ATA提高當好人的門檻值)》之銘言: : 其實我只寫過Swing 不過我有抓過SWT browser的範例 : 就我swing的經驗 應該是dispose的問題 : 因此才給那幾個關鍵字 : 不過我不懂SWT 留給高手解釋語法 : 以下直接把我手邊的dispose範例 : Shell composite = SWT_AWT.new_Shell(display, embedded); : //略 : frame.addWindowListener(new WindowAdapter() { : public void windowClosing(WindowEvent e) : { : e.getWindow().dispose(); : composite.dispose(); : } : }); Swing 的 dispose 和 SWT 的 dispose 意義上極大的不同。 SWT 的元件並不會被自動 GC http://www.eclipse.org/articles/swt-design-2/swt-design-2.html 如果在 Swing 上內嵌就不會需要有以下這段 code shell.pack(); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose(); 這是每一個 SWT 程式都會需要的一個 MAIN EVENT LOOP (如果寫過 gtk 的就會覺得是不是很像呢 XD) 所有的元件都會與 display 或 shell 產生關聯 依據 url 內的 rule 2,只要 parent 被 dispose 他的子元件都會被 dispose 所以,只能推測您內嵌使用忘了 dispose 導致 Browser 沒有被釋放。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.133.80.216

08/16 00:10, , 1F
受教了
08/16 00:10, 1F

08/16 00:12, , 2F
SWT compoment無法被fgc我嚇到了XD
08/16 00:12, 2F

08/16 00:13, , 3F
因為 SWT 通通是用 JNI 寫的, 所以不會自動處理也很正常
08/16 00:13, 3F

08/16 00:17, , 4F
您受驚了 @o@ 不過沒什麼好怕的,只要有閱讀手冊的人都明白
08/16 00:17, 4F

08/16 00:18, , 5F
我完全沒碰過SWT 呵呵呵
08/16 00:18, 5F
文章代碼(AID): #18fQWaHA (java)
討論串 (同標題文章)
文章代碼(AID): #18fQWaHA (java)