我想知道如何检查小部件是按钮还是文本?我该怎么做呢?通过使用 widget.getClass().getName()
并将字符串与等于 "org.eclipse.swt.widgets.Combo"
进行比较?有没有任何示例或示例代码可以证明这一点?我想检查一个小部件是否是可编辑的小部件(文本、旋转器、组合)。
最佳答案
不幸的是,在 SWT 中,可编辑小部件类没有实现任何通用接口(interface)。如果此功能对您实现自己的界面很重要:
public interface Editable{
public void comommonEditableMethod(Param param);
}
然后将您自己的 SWT 小部件添加到“可编辑”组中:
public class MyText extends Text implements Editable {...
public class MyCombo extends Combo implements Editable {...
等等... 然后在代码中您可以检查:
if(myControl instanceof Editable) {
// do something
}
只要记住在您子类的每个 SWT 控件中重写 Widget 的方法,否则您将得到令人讨厌的异常:
@Override
protected void checkSubclass () {
//DISABLE SUBCLASS CHECK
}
关于Java SWT如何确定一个widget可编辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33072753/