Re: [問題] SWT Browser
※ 引述《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
08/16 00:12, 2F
推
08/16 00:13, , 3F
08/16 00:13, 3F
→
08/16 00:17, , 4F
08/16 00:17, 4F
推
08/16 00:18, , 5F
08/16 00:18, 5F
討論串 (同標題文章)