我有这个功能:

public static void changeState(Text control,final int style)
{
    if (SWT.ENABLED == (style & SWT.ENABLED)) {
        MyService.setState(control, SWT.ENABLED);

    }
    if (SWT.DISABLED == (style & SWT.DISABLED)) {
        MyService.setState(control, SWT.DISABLED);

    }
    if(SWT.READ_ONLY == (style & SWT.READ_ONLY)){
        MyService.setState(control, SWT.READ_ONLY);
    }
}


我想先清除小部件的当前状态,然后再为其设置其他状态。

我创建了一个文本对象,将其状态设置为非活动,然后尝试将其设置为read_only,但是它不起作用,这就是为什么我试图创建一个清除当前状态的函数以便能够更改同一对象的状态。

我应该怎么做?

也许有一些功能可以做到这一点,但我找不到。

最佳答案

没有诸如SWT.ENABLEDSWT.DISABLED这样的标志。

您可以使用以下方式启用/禁用控件

control.setEnabled(boolean);


您可以使用以下命令更改Text控件的只读状态

control.setEditable(boolean);


请注意,一旦创建控件,大多数其他样式位就无法更改。

关于java - SWT文本小部件的清除状态,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45433697/

10-14 04:44