JavaSWT如何判断一个widget是否可编辑
Java SWT how to determine a widget editable
我想知道如何检查小部件是按钮还是文本?我该怎么做?通过使用 widget.getClass().getName()
并比较等于 "org.eclipse.swt.widgets.Combo"
的字符串?是否有任何示例或示例代码可以证明这一点?我想检查一个小部件是否是一个可编辑的小部件(文本、微调器、组合)。
不幸的是,在 SWT 可编辑小部件中 类 没有实现任何通用接口。如果此功能对您很重要,请实现您自己的界面:
public interface Editable{
public void comommonEditableMethod(Param param);
}
然后您自己的 SWT 小部件,您想要在 "editable" 组中:
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
}
Button
不可滚动,Text
、Spinner
、Combo
都是 scrollable.But 所有这些都是 class 的子 [=] 14=]。
请参考下面的屏幕截图并根据您的需要修改文本代码(Main
class)。重要的是要了解 Widget
class 类型层次结构。
我想知道如何检查小部件是按钮还是文本?我该怎么做?通过使用 widget.getClass().getName()
并比较等于 "org.eclipse.swt.widgets.Combo"
的字符串?是否有任何示例或示例代码可以证明这一点?我想检查一个小部件是否是一个可编辑的小部件(文本、微调器、组合)。
不幸的是,在 SWT 可编辑小部件中 类 没有实现任何通用接口。如果此功能对您很重要,请实现您自己的界面:
public interface Editable{
public void comommonEditableMethod(Param param);
}
然后您自己的 SWT 小部件,您想要在 "editable" 组中:
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
}
Button
不可滚动,Text
、Spinner
、Combo
都是 scrollable.But 所有这些都是 class 的子 [=] 14=]。
请参考下面的屏幕截图并根据您的需要修改文本代码(Main
class)。重要的是要了解 Widget
class 类型层次结构。