在ReadOnly模式下以编程方式设置TextField的值?

Bas*_*que 5 java vaadin

Vaadin小部件提供setEnabledsetReadOnly方法.我想要只读状态的视觉黑色可读性而不是灰色禁用状态.我的目标是阻止用户直接输入数据.

不幸的是,TextField上的只读模式不仅阻止用户进行数据输入.它还阻止我通过调用以编程方式设置值setValue.

解决方法是让我的代码(1)使用False调用setReadOnly,(2)调用setValue,(3)使用True调用setReadOnly.

➤在只读模式下是否有更简单的方法来更改TextField的值?

Elk*_*awy 6

我不认为有一种更简单的方法可以TextField在只读模式下更改a的值,如果你浏览了AbstractField setValue方法的源代码,你就可以发现它.

但你仍然可以使用简单的函数自己做到这一点:

 public void setValue(TextField textField, String value) {
          if (textField.isReadOnly()) {
              textField.setReadOnly(false);
              textField.setValue(value);
              textField.setReadOnly(true);
          } else {
              textField.setValue(value);
          }
    } 
Run Code Online (Sandbox Code Playgroud)