Отображать Jlabel на основе JtextArea динамически без нажатия кнопки - PullRequest
0 голосов
/ 15 февраля 2019

Мне было интересно, возможно ли обновить JFrame или JDialogs на основе входных данных внутри jtextarea без нажатия кнопки.Например, после ввода текста в текстовом поле.он должен автоматически обновить Jlabel без необходимости кнопки.У меня есть поиск по всему, но вся информация, которую я нашел, основана только на нажатии кнопки.Например,

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);

Нужно ли обновлять весь кадр?повлияет ли это на все остальные текстовые поля, которые пользователь уже заполнил обратно до пустых?

Спасибо

1 Ответ

0 голосов
/ 15 февраля 2019

Document объект, содержащийся в 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 
    }
});
...