И ярлык ENTER, и TextArea в Vaadin

TextField f = new TextField();
Button b = new Button("Save");
b.setClickShortcut(KeyCode.ENTER); // For quick saving from text field itself

TextArea longText = new TextArea(); // "Enter" is garbled here

Хотелось бы, чтобы ярлык работал только в текстовом поле от?


person Vi.    schedule 30.05.2012    source источник


Ответы (3)


Используйте слушателей focus и blur для удаления и добавления сочетания клавиш:

    f.addFocusListener(new FocusListener() {
        @Override
        public void focus(FocusEvent event) {
            b.setClickShortcut(KeyCode.ENTER);
        }
    });
    f.addBlurListener(new BlurListener() {
        @Override
        public void blur(BlurEvent event) {
            b.removeClickShortcut();
        }
    });
person Henri Kerola    schedule 30.05.2012

Для более новых версий Vaadin требуется следующий код, так как addListener () теперь устарел.

    f.addFocusListener(new FocusListener() {

        private static final long serialVersionUID = -6733373447805994139L;

        @Override
        public void focus(FocusEvent event) {
            b.setClickShortcut(KeyCode.ENTER);
        }
    });

    f.addBlurListener(new BlurListener() {

        private static final long serialVersionUID = -3673311830300629513L;

        @Override
        public void blur(BlurEvent event) {
            b.removeClickShortcut();
        }
    });
person Mirko Seifert    schedule 09.02.2014

Говоря о Vaadin 14, я искал ответ, и для меня это сработало.

  Button search = new Button("Search");
  search.addClickShortcut(Key.ENTER);
person Vipul Jain    schedule 07.07.2020