我想在我的SWT项目控件中使用预定义样式的按钮(按钮,文本等)。我的第一个想法是扩展例如org.eclipse.swt.widgets.Text
类,设置一些设置并使用该新类而不是原始类,但会出现org.eclipse.swt.SWTException: Subclassing not allowed
异常。怎么做对?
最佳答案
您必须重写checkSubclass方法以执行任何操作,否则它将提示不允许子类化-因为通常您实际上不应真正覆盖标准组件。
@Override
protected void checkSubclass() {
// Disable the check that prevents subclassing of SWT components
}
您还应该考虑使用委派来构建包含原始控件的自定义窗口小部件。例如,您可以构建MyText,其中将包含带有自定义设置的Text小部件。
需要记住的是,SWT提供了标准控件,它们在平台上的每个控件上都具有 native 外观。无论如何,仍然允许抛光标准组件,甚至在生产软件中也是必须的。
关于swt - 具有预定义样式的SWT控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9567042/