JTextArea 中的 keyPressed 输出
Output on keyPressed in 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' 键后输出为空
但是在我按下 's' 键
之后我想要 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);
当我尝试从 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' 键后输出为空 但是在我按下 's' 键
之后我想要 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);