Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 基于JtextArea动态显示Jlabel,无需点击按钮_Java_Swing_Jlabel_Jtextfield - Fatal编程技术网

Java 基于JtextArea动态显示Jlabel,无需点击按钮

Java 基于JtextArea动态显示Jlabel,无需点击按钮,java,swing,jlabel,jtextfield,Java,Swing,Jlabel,Jtextfield,我一直在想,是否有可能在不点击按钮的情况下根据jtextarea内的输入更新JFrame或JDialogs。例如,在textarea中输入一些文本后。它应该自动更新jlabel,而不需要按钮。我已经搜索了troughout,但我找到的所有信息都是基于点击按钮。比如, JFrame frame = new JFrame(); frame.setLayout(new GridLayout(0, 1)); JTextArea input = new JTextArea(); J

我一直在想,是否有可能在不点击按钮的情况下根据jtextarea内的输入更新JFrame或JDialogs。例如,在textarea中输入一些文本后。它应该自动更新jlabel,而不需要按钮。我已经搜索了troughout,但我找到的所有信息都是基于点击按钮。比如,

JFrame frame = new JFrame();
    frame.setLayout(new GridLayout(0, 1));
    JTextArea input = new JTextArea();
    JLabel output = new JLabel("test");

    // Condition 
    // If user input "abc" inside textfield
    // JLabel will automatically display "abc"

    frame.add(input);
    frame.add(output);
    frame.setSize(300,400);
    frame.setVisible(true);
我需要刷新整个帧吗?它会影响用户已经填充为空的所有其他文本字段吗

谢谢

JTextArea包含的文档对象接收更新

JTextArea input = new JTextArea();
input .getDocument().addDocumentListener(new DocumentListener() {

    @Override
    public void removeUpdate(DocumentEvent e) {}

    @Override
    public void insertUpdate(DocumentEvent e) {}

    @Override
    public void changedUpdate(DocumentEvent arg0) {
            //Add logic here to check if particular word is entered.
            //if yes show label, else hide the label object 
    }
});

顺便说一句,我们是否可以检查用户是否在文本区输入了新字母。它会变成现实。例如,如果用户键入每个单词,它将返回true,否则在我创建计数器时它将返回false。我得到它,只需要包含在给定的insertUpdate和removeUpdate中。谢谢