Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java TextField可以输入单词吗?_Java_Frameworks_Vaadin_Vaadin7 - Fatal编程技术网

Java TextField可以输入单词吗?

Java TextField可以输入单词吗?,java,frameworks,vaadin,vaadin7,Java,Frameworks,Vaadin,Vaadin7,我正在尝试自定义一个文本字段,但我不明白当用户键入时如何获得这些单词?例如,如果用户输入单词“abc”,我应该一个接一个地得到这个单词。我在读瓦迪尼的书,但我不知道怎么做 我该怎么办 谢谢您需要一个文本更改侦听器 textmessage/SMS计数器示例 final TextField textfield = new TextField("SMS"); textfield.setValue(""); textfield.setMaxLength(160); // Counter for inp

我正在尝试自定义一个文本字段,但我不明白当用户键入时如何获得这些单词?例如,如果用户输入单词“abc”,我应该一个接一个地得到这个单词。我在读瓦迪尼的书,但我不知道怎么做

我该怎么办


谢谢

您需要一个
文本更改侦听器

textmessage/SMS计数器示例

final TextField textfield = new TextField("SMS");
textfield.setValue("");
textfield.setMaxLength(160);

// Counter for input length
final Label counter = new Label();
counter.setValue(textfield.toString().length() + " / " + textfield.getMaxLength());

// Display the current length interactively in the counter
textfield.addValueChangeListener(new TextChangeListener() {
    public void textChange(TextChangeEvent event) {
        int len = event.getText().length();
        counter.setValue(len + " / " + textfield.getMaxLength());
    }
});

// Set how fast the listener is invoked (this is default)
textfield.setTextChangeEventMode(TextChangeEventMode.LAZY);

5.8.4文本更改事件下的更多信息。

哇,感谢您的关注

我使用StringBuffer解决了这个问题,当用户在键盘上键入时,我得到了所需的文本和格式

public class CpfField extends TextField implements TextChangeListener{  
    private final StringBuffer CPF = new StringBuffer();    

    public CpfField(){
        super("CPF");
        setImmediate(true);
        setMaxLength(14);
        addTextChangeListener(this);
}

@Override
public void textChange(TextChangeEvent event) {
    if(!event.getText().trim().isEmpty()){
        if(event.getText().length() == 3){
            CPF.append(event.getText());                    
            CPF.insert(3,".");
        }else if(event.getText().length() == 7){
            CPF.setLength(0);
            CPF.append(event.getText());
            CPF.insert(7,".");
        }else if(event.getText().length() == 11){
            CPF.setLength(0);
            CPF.append(event.getText());
            CPF.insert(11,"-");
        }else{
            CPF.setLength(0);
            CPF.append(event.getText());
        }
    }else{
        CPF.setLength(0);
        setValue("");
    }

    setValue(CPF.toString());
}
}


谢谢我的朋友

您可以尝试重新调整用途:评估空格是否是最后一个字符,然后解析出单词是否是空格。