Java SWT如何确定可编辑的小部件

时间:2015-10-12 03:17:55

标签: java swt

我想知道如何检查小部件是按钮还是文本?我该怎么办?使用widget.getClass().getName()并将字符串等于"org.eclipse.swt.widgets.Combo"进行比较?有没有示例或示例代码演示这个?我想检查一个小部件是否是一个可编辑的小部件(Text,Spinner,Combo)。

2 个答案:

答案 0 :(得分:0)

不幸的是,在SWT中,可编辑的窗口小部件类不实现任何通用接口。如果此功能对您实现自己的界面很重要:

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
}

答案 1 :(得分:-1)

Button不可滚动且TextSpinnerCombo都可滚动。但所有这些都是Control的子类。 请参阅以下屏幕截图,并根据需要修改文本代码(Main类)。重要的是要了解Widget类类型层次结构。

enter image description here