JTextArea中按键按下时输出



当我试图从JTextArea获取文本并打印它时,它在按下下一个键后打印字符串。我想在按下该键时打印它。

代码如下:

textArea_1.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
x=textArea_1.getText().toString();
System.out.println(x);
}
@Override
public void keyReleased(KeyEvent e) {
}
@Override
public void keyTyped(KeyEvent e) {
}
});

例如,我先按s键,然后按a键按"a"键后的输出为s按下's'键后的输出为null但我想在按下s键之后

如注释中所述,您可以使用DocumentListener,例如:

javax.swing.event.DocumentListener myDocumentListener = new javax.swing.event.DocumentListener() {
@Override
public void changedUpdate(javax.swing.event.DocumentEvent documentEvent) {
output(documentEvent);
}
@Override
public void insertUpdate(javax.swing.event.DocumentEvent documentEvent) {
output(documentEvent);
}
@Override
public void removeUpdate(javax.swing.event.DocumentEvent documentEvent) {
output(documentEvent);
}
private void output(javax.swing.event.DocumentEvent documentEvent) {
Document source = documentEvent.getDocument();
int length = source.getLength();
try {
System.out.println(source.getText(0, length));
}
catch (javax.swing.text.BadLocationException ex) {
System.err.println("Invalid Index Supplied!");
}
}
};
jTextArea1.getDocument().addDocumentListener(myDocumentListener);

最新更新