TextField focus 事件

jmix有没有focus事件?比我光标到textfield里面,就弹出一个dialog

Jmix的的 Component 类有一个 unwrap() 方法,可以拿到 Jmix* 或者 com.vaadin.ui.* 组件。Jmix* 组件也都是继承了 Vaadin的组件。

Vaadin组件支持更多的方法,比如focus事件:

  @Autowired
  private TextField<String> nameField;

  JmixTextField jmixTextField = nameField.unwrap(JmixTextField.class);
  jmixTextField.addFocusListener(e->{
      notifications.create(Notifications.NotificationType.HUMANIZED)
              .withCaption("TextField focused")
              .show();
  });

1 个赞

:+1::+1::+1::+1::+1::+1:
太好了,一直寻思怎们走到vaddin去,不过xml里面还是只能用一些jmix的组件。

顺便请教一下,script脚本能调到controller那边吗?controller那个名字怎么写都没效果
image
image

这个focus事件一直循环调用;
addContextClickListener是鼠标右键触发,
有没有左键的?

怎么循环调用?具体的业务需求是怎样?

textfiled focus弹出一个dialog。进行编辑,关闭了应该是又触发了focus

可以用dialog的closeListener,关闭dialog后,自动focus到下一个组件(调用focus()方法)?

能移除focus吗?如果其他组件focus我还得传一个组件到fragment。

我查了下,这个应该是不支持的。Vaadin里面就没有。又回过来想了想你这个需求,textField一般是用来输入的,如果是弹窗选择的话,右边会配一个按钮。你看看是不是从设计角度改一改

我尝试了fragment里面多放一个textfield,但是visible=false。focus那个就不生效了。
暂时用了addContextClickListener,是右键点击触发,有点奇怪,可能后面得考虑其他方式了

1 个赞