我正在尝试使用值更改处理程序获取用户在textArea中键入的文本。每次我尝试访问处理程序外的文本时,我都会得到Null指针异常。为什么会这样?如何从textArea获取完整的文本以便我可以进一步使用它?
display.getmessageTextArea().addValueChangeHandler(new ValueChangeHandler<String>() {
@Override
public void onValueChange(ValueChangeEvent<String> event) {
text=event.getValue();
}
});
System.out.println(text);
当我在处理程序外打印文本时,我得到空指针异常。我想要获取用户在该textArea中输入的文本。
答案 0 :(得分:0)
使用textArea.getValue()
方法从GWT中的TextArea
获取文本。
display.getmessageTextArea().addValueChangeHandler(new ValueChangeHandler<String>() {
@Override
public void onValueChange(ValueChangeEvent<String> event) {
text=display.getmessageTextArea().getValue();
}
});
System.out.println(display.getmessageTextArea().getValue());
textArea.getValue()
方法根本不会返回null
。如果TextArea
为空,那么它将返回一个空字符串。
以下是TextBoxBase.java
TextArea
的源代码
/**
* Overridden to return "" from an empty text box.
*/
@Override
public String getValue() {
String raw = super.getValue();
return raw == null ? "" : raw;
}
答案 1 :(得分:0)
final TextArea textArea=new TextArea();
textArea.setCharacterWidth(22);
textArea.setVisibleLines(2);
textArea.addValueChangeHandler(new ValueChangeHandler<String>() {
@Override
public void onValueChange(ValueChangeEvent<String> event)
{
String addr=textArea.getValue();
student.setAddress(addr);
System.out.println(addr);
}
});