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

时间:2014-08-07 21:14:32

标签: java vaadin

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

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

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

  

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

2 个答案:

答案 0 :(得分:6)

如果您查看TextField 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);
          }
    } 

答案 1 :(得分:1)

您可以改为禁用颜色。

input[disabled], .v-disabled {
    color: #22222;
    opacity: 1.0;
}