无需单击按钮即可动态显示基于 JtextArea 的 Jlabel
Display Jlabel based on JtextArea dynamically without button click
我一直想知道是否可以在不单击按钮的情况下根据 jtextarea 中的输入更新 JFrame 或 JDialogs。例如,在我在 textarea 中输入一些文本之后。它应该自动更新 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);
我需要刷新整个框架吗?它会影响用户已经填回空的所有其他文本字段吗?
谢谢
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
}
});
我一直想知道是否可以在不单击按钮的情况下根据 jtextarea 中的输入更新 JFrame 或 JDialogs。例如,在我在 textarea 中输入一些文本之后。它应该自动更新 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);
我需要刷新整个框架吗?它会影响用户已经填回空的所有其他文本字段吗?
谢谢
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
}
});