字符串未显示在 TextField 的 TextArea 中
Posted
技术标签:
【中文标题】字符串未显示在 TextField 的 TextArea 中【英文标题】:String not showing in TextArea from TextField 【发布时间】:2015-07-16 14:38:00 【问题描述】:我正在制作一个简单的 GUI 来检查我的字符串拼写并希望连续显示文本,所以我在文本字段中写入的内容会不断更新文本区域,我为此使用了 Document 侦听器,但我遇到了一个问题无法通过我定义的字符串(如
)在文本区域中显示来自输入字段的文本String check = input.getText();
textarea.setText(check);
我想知道为什么它不起作用,但是我可以使用这种方法正常工作
//String check = input.getText();
textarea.setText(input.getText());
我想使用第一种方法来预处理我的字符串以进行拼写检查
帮我解决这个问题!
工作方法:
public void setText()
jTextArea1.setEditable(false);
input.getDocument().addDocumentListener(new DocumentListener()
public void insertUpdate(DocumentEvent de)
jTextArea1.setText(input.getText());
@Override
public void removeUpdate(DocumentEvent de)
jTextArea1.setText(input.getText());
@Override
public void changedUpdate(DocumentEvent de)
//Plain text components don't fire these events.
);
非工作方法:
public void setText()
jTextArea1.setEditable(false);
String check = input.getText();
input.getDocument().addDocumentListener(new DocumentListener()
public void insertUpdate(DocumentEvent de)
jTextArea1.setText(check);
@Override
public void removeUpdate(DocumentEvent de)
jTextArea1.setText(check);
@Override
public void changedUpdate(DocumentEvent de)
//Plain text components don't fire these events.
);
【问题讨论】:
应该没有区别。您是否尝试将check
设置在文档侦听器之外的其他位置?
能否请您发布整个方法。正如 kiheru 所说,这应该可以正常工作。
是的,它似乎没有区别,但它只是没有显示我的文字:(我不知道为什么
有一个根本的区别:后一个版本在文档侦听器之外获取文本。该值不会改变,只是因为getText()
稍后会返回一个不同的值。字符串是不可变的,check
一直引用与您最初设置的字符串相同的字符串。
我现在该怎么办?
【参考方案1】:
我会用一个 inputKeyTyped 监听器和一个 inputFocusLost 监听器来解决这个问题:
private void inputKeyTyped(java.awt.event.KeyEvent evt)
String s;
s = input.getText();
output.setText(s);
private void inputFocusLost(java.awt.event.FocusEvent evt)
String s;
s = input.getText();
output.setText(s);
在我的测试应用程序中,它运行良好。在每个键入的字母之后,输出都会更新。 (第一个文本字段称为“输入”,第二个称为“输出”)。
【讨论】:
你也使用了 ' output.setText(input.getText()); “我想让它工作” output.setText(s); " 其中 "s" 是一个字符串,其值为用户输入以上是关于字符串未显示在 TextField 的 TextArea 中的主要内容,如果未能解决你的问题,请参考以下文章
models.TextField() 中的换行符未在模板中呈现
Qt TextField 在 Android 设备上启动时未调用键盘
ExtJs 4 - 调整窗口大小时未保持 TextField 高度