你好,guyz,我是 java swing 的新手,正在开发一个项目,我无法将我在文本字段中输入的文本更新到 java swing 中的文本区域,我正在使用这个 Example作为引用,但我正在使用 JFrame 表单在 Netbeans 中使用拖放来制作 GUI
这是我的代码
private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String s = this.jTextField1.getText();
jTextArea1.setEditable(false);
jTextField1.getDocument().addDocumentListener(new DocumentListener() {
public void insertUpdate(DocumentEvent de) {
jTextArea1.setText(s);
}
@Override
public void removeUpdate(DocumentEvent de) {
jTextArea1.setText(s);
}
@Override
public void changedUpdate(DocumentEvent de) {
//Plain text components don't fire these events.
}
});
}
我无法通过使用拖放方法来做到这一点,而它对我来说工作正常,就像我上面发布的示例一样。
任何帮助将不胜感激
最佳答案
通常,我们不会将一个监听器放在另一个监听器中,这会导致内部监听器被多次调用。 清除以下代码。
jTextArea1.setEditable(false);
jTextField1.getDocument().addDocumentListener(new DocumentListener() {
public void insertUpdate(DocumentEvent de) {
jTextArea1.setText(s);
}
@Override
public void removeUpdate(DocumentEvent de) {
jTextArea1.setText(s);
}
@Override
public void changedUpdate(DocumentEvent de) {
//Plain text components don't fire these events.
}
});
然后使用 Netbeans GUI Builder 使 jTextArea1 不可编辑(在“属性”中),并向 jTextField1 添加一个 DocumentListener,就像对其 ActionListener 所做的那样。
然后更新GUI Builder创建的新添加的方法中的文本,我认为是:
public void jTextField1RemoveUpdate(DocumentEvent de)
public void jTextField1InsertUpdate(DocumentEvent de)
在每个方法中,您都调用 jTextArea1.setText(jTextField1.getText());
关于java - 在文本字段中同时输入时无法更新文本区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30037286/