我正在使用Vaadin,并且在表单中有一组文本字段。文本字段具有focusListeners,它会触发一种方法,该方法将在texfield中集中所有文本(如果有的话)。

我的问题是自动选择实际上只工作一半的时间。如果我在文本字段中粘贴一些文本,请在文本字段外单击,然后在文本框内单击,以选择文本。但是,如果我再次单击外部,然后在文本字段中,文本将被选中一秒钟,然后只有输入标记在我单击文本的位置。

这是代码:

class FormTextField extends FormLayout  {

        private static final long serialVersionUID = -2738069810605965508L;

        String caption;
        final STextField textField = Cf.formTextField(caption, "", 22);

        public FormTextField(String textField)  {

            addStyleName("panelform");
            setWidth(formWidth, UNITS_EM);

            this.textField.setCaption(textField);
            this.textField.setImmediate(true);

            this.textField.addListener(new FieldEvents.FocusListener() {

                @Override
                public void focus(FocusEvent event) {
                    textFieldSelectAll();
                }
            });


            addComponent(this.textField);

        }

        private void textFieldSelectAll()   {
            this.textField.selectAll();
        }

        public STextField getTextField()    {

            return textField;

        }
    }
}


我非常想知道您中的某人是否熟悉此问题并且能够解决该问题?

如果您想从我这里得到更多信息,请询问!

最佳答案

我认为您也需要立即声明FormTextField / STextField。

希望这可以帮助。

关于java - TextField selectAll一半时间起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8536341/

10-10 17:56