同时在文本字段中输入时无法更新 TextArea

Posted

技术标签:

【中文标题】同时在文本字段中输入时无法更新 TextArea【英文标题】:Unable to update TextArea while typing in Text Field at same time 【发布时间】:2015-07-14 06:16:06 【问题描述】:

你好,我是 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.
            
        );

         

我无法通过使用拖放方法来做到这一点,而它对我来说工作正常,就像我在上面发布的示例一样。

任何帮助将不胜感激

【问题讨论】:

您不太可能打算在动作侦听器中添加文档侦听器。只需在设置 GUI 的位置添加文档侦听器即可。 【参考方案1】:

通常情况下,我们不会将一个 Listener 放在另一个 Listener 中,这会使内部的 Listener 被多次调用。 清除以下代码。

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 不可编辑(在 Properties 中),并将 DocumentListener 添加到 jTextField1,就像您对它的 ActionListener 所做的那样。

然后更新GUI Builder创建的新添加的方法中的文本,我认为是:

public void jTextField1RemoveUpdate(DocumentEvent de)
public void jTextField1InsertUpdate(DocumentEvent de)

在每个方法中,您调用 jTextArea1.setText(jTextField1.getText());

【讨论】:

嗯,它有助于我清除我的概念,即我们不能在任何其他侦听器中使用侦听器,我试图从我的文本框的动作侦听器复制粘贴我的代码到我的 GUI 的构造函数中工作,谢谢队友:)

以上是关于同时在文本字段中输入时无法更新 TextArea的主要内容,如果未能解决你的问题,请参考以下文章

Textarea 可编辑,除了来自输入的值

用 ajax 更新而不是替换 wordpress 自定义字段

键入文本时扩展的 CSS Textarea [重复]

无法在 selenium 的 textarea 中输入文本

了解android文本输入和软键盘

AS3里【TextField】于【TextArea】有啥区别?