当前位置: 首页 > 面试题库 >

在文本字段中输入文字的同时更新文本区域

支华池
2023-03-14
问题内容

我想在输入文本字段的同时更新我的​​文本区域,但是在输入时我延迟了1次击键,即当我按下一个键时,会显示上一个键。这是我的代码

private void jTextField1KeyTyped(java.awt.event.KeyEvent evt)
{         
    String a = jTextField1.getText();
    jTextArea1.setText(a);            
}

问题答案:

我不建议使用 KeyListeners

只需DocumentListener在您的JTextFieldvia中添加一个:

textField.getDocument().addDocumentListener(new DocumentListener() {

            @Override
            public void insertUpdate(DocumentEvent de) {
            }

            @Override
            public void removeUpdate(DocumentEvent de) {
            }

            @Override
            public void changedUpdate(DocumentEvent de) {
            }
        });

里面每个方法(insertUpdateremoveUpdatechangedUpdate)只需要一个电话设置你的文字JTextArea通过setText()

textArea.setText(textField.getText());

这是我做的一个例子:

import java.awt.BorderLayout;
import javax.swing.*;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;

public class Test {

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {

            @Override
            public void run() {
                new Test().createAndShowUI();
            }
        });
    }

    private void createAndShowUI() {
        final JFrame frame = new JFrame("Test");

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        initComponents(frame);

        frame.setResizable(false);
        frame.pack();
        frame.setVisible(true);
    }

    private void initComponents(JFrame frame) {
        final JTextField jtf = new JTextField(20);
        final JTextArea ta = new JTextArea(20,20);

        ta.setEditable(false);

        jtf.getDocument().addDocumentListener(new DocumentListener() {

            @Override
            public void insertUpdate(DocumentEvent de) {
                ta.setText(jtf.getText());
            }

            @Override
            public void removeUpdate(DocumentEvent de) {
                ta.setText(jtf.getText());
            }

            @Override
            public void changedUpdate(DocumentEvent de) {
            //Plain text components don't fire these events.
            }
        });

        frame.getContentPane().add(jtf, BorderLayout.WEST);
        frame.getContentPane().add(ta, BorderLayout.EAST);
    }
}


 类似资料:
  • 问题内容: 当我在文本字段中输入文本时,它将被删除。 这是代码: 问题答案: 同意Subir Kumar Sao和Faiz。

  • 当我在文本字段中输入文本时,它会被删除。 代码如下:

  • 问题内容: 我有一个最大字符范围为16的字符,每4个字符后,我要添加一个负字符或空格,然后编写其余的字符,例如本示例5022-2222-2222-2222。有我的代码,但是那不起作用,该怎么办? 我在 范围方法中添加此代码。 问题答案: 我们可以从实现oisdk:s SwiftSequence 方法的(版本号)的Swift 3版本开始: 在这种情况下,实现自定义格式是创建4个字符的块并将其通过“-

  • EDIT--显示对象类,在initialize方法中添加代码,删除以前的filter方法,并从FXML中删除TextField的OnAction。--- 我第一次试图解决这个问题的尝试导致了许多Android问题,所以我在这里。 我使用JavaFX、Scenebuilder和FXML制作了一个简单的GUI。这个GUI模拟工厂车间的库存,可以从添加到/删除/显示/保存到文件。它还应该根据用户在中输入

  • 我正在尝试在航班搜索应用程序(https://flights.msn.com/en-in/flight-search)中写任何新的字段,但不能写。我尝试了所有可能的XPath和定位器,但都做不到。 原点中的默认值不删除,不允许写入任何新字段。 链接:https://flights.msn.com/en-in/flight-search 线程“main”org.openqa.selenium.nos

  • 问题内容: 我正在尝试我的React.js的第一部分,并在很早的时候就陷入了困境…我有下面的代码,该代码将搜索表单呈现为。但是,在搜索框中输入内容无济于事。 大概在通过道具并上下移动时会丢失一些东西,这似乎是一个常见问题。但是我很沮丧-我看不到缺少的东西。 (最终,我会使用其他类型的,但是我只是想让这一类正常工作。) 问题答案: 您尚未将道具放在机箱中。它必须在JSX中。 在文档中充分考虑了将 p