扩展SWT的widgets遇到org.eclipse.swt.SWTException: Subclassing not allowed

本文介绍了一个关于在Eclipse SWT中子类化Label组件时遇到的异常问题:Subclassing not allowed。通过重写checkSubclass()方法可以解决此异常,使自定义的VideoLabel组件正常工作。

import com.jxxms.meeting.entiy.User;
import com.jxxms.resource.SWTResourceManager;

public class VideoLabel extends Label {

 

    private User user;


    public VideoLabel(Composite parent, int style,User user) {
       super(parent, style);
       this.user= user;
       setToolTipText(user.getUserName());
        setImage(SWTResourceManager.getImage(user.getPictureuri()));
    }
}

 

 

异常情况如下

     org.eclipse.swt.SWTException: Subclassing not allowed

 

 

解决办法:

重写

 protected void checkSubclass() {

 }

方法,这样就OK

kettle-webspoon 17-Jun-2025 09:04:16.616 信息 [Thread-129] org.apache.catalina.core.StandardService.stopInternal Stopping service [Catalina] Exception while disposing shell: Shell {Spoon - [FileRepository] [没有名称]} org.eclipse.swt.SWTException: Graphic is disposed at org.eclipse.swt.SWT.error(SWT.java:3808) at org.eclipse.swt.SWT.error(SWT.java:3731) at org.eclipse.swt.SWT.error(SWT.java:3702) at org.eclipse.swt.graphics.Image.getBounds(Image.java:425) at org.eclipse.swt.widgets.ToolItem.getPreferredHeight(ToolItem.java:587) at org.eclipse.swt.widgets.ToolItem.getHeight(ToolItem.java:541) at org.eclipse.swt.widgets.ToolItem.getBounds(ToolItem.java:497) at org.eclipse.swt.widgets.ToolBar.layoutItems(ToolBar.java:385) at org.eclipse.swt.widgets.ToolBar.destroyItem(ToolBar.java:379) at org.eclipse.swt.widgets.ToolItem.releaseParent(ToolItem.java:805) at org.eclipse.swt.widgets.Widget.dispose(Widget.java:848) at org.eclipse.swt.widgets.ToolBar.releaseChildren(ToolBar.java:354) at org.eclipse.swt.widgets.Widget.dispose(Widget.java:844) at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:873) at org.eclipse.swt.widgets.Shell.releaseChildren(Shell.java:992) at org.eclipse.swt.widgets.Widget.dispose(Widget.java:844) at org.eclipse.swt.widgets.Display.disposeShells(Display.java:763) at org.eclipse.swt.widgets.Display.release(Display.java:739) at org.eclipse.swt.graphics.Device.dispose(Device.java:279) at org.eclipse.rap.rwt.internal.lifecycle.UIThread.processShutdown(UIThread.java:179) at org.eclipse.rap.rwt.internal.lifecycle.RWTLifeCycle$UIThreadController.run(RWTLifeCycle.java:309) at java.lang.Thread.run(Thread.java:748) at org.eclipse.rap.rwt.internal.lifecycle.UIThread.run(UIThread.java:107) /usr/local/tomcat/bin/catalina.sh: line 149: /usr/local/tomcat/bin/setenv.sh: Operation not permitted
07-01
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值