錯誤: org.eclipse.swt.SWTException: Subclassing not allowed
創建一個繼承Shell的類BorderTextShell后出錯
因為在BorderTextShell構造方法中,
要調用父類構造方法:
其中,checkSubclass ()方法繼承自Decoration類,用來驗證子類是否存在于org.eclipse.swt.widgets包內.
若不在此包內,則報錯.
解決辦法:
1. package org.eclipse.swt.widgets;
2. 重寫checkSubclass ()方法,方法體為空.即在子類中添加:
3. 在類中聲明Shell類的一個實例.(OO原則: 多用組合,少用繼承)

創建一個繼承Shell的類BorderTextShell后出錯
因為在BorderTextShell構造方法中,
super(display, style);
要調用父類構造方法:
public Shell (Display display, int style) { this (display, null, style, 0, false); } Shell (Display display, Shell parent, int style, int /*long*/ handle, boolean embedded) { super (); checkSubclass (); ... }
其中,checkSubclass ()方法繼承自Decoration類,用來驗證子類是否存在于org.eclipse.swt.widgets包內.
若不在此包內,則報錯.
解決辦法:
1. package org.eclipse.swt.widgets;
2. 重寫checkSubclass ()方法,方法體為空.即在子類中添加:
protected void checkSubclass() { }
3. 在類中聲明Shell類的一個實例.(OO原則: 多用組合,少用繼承)
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
