java - 在 JTextArea 中的 keyPressed 上输出
问题描述
当我试图从中获取文本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);
推荐阅读
- laravel - count() 使用后返回 0 跳过并取入 laravel ORM
- apache-spark - 强制删除 spark pod 驱动程序时,驱动程序不会重新启动
- javascript - 循环一个对象并在一个数组中对一个数组中的每 4 个项目进行分组
- python - Python Django - ModuleNotFoundError:没有名为“picamera”的模块
- python - Google Cloud Functions Deploy“允许未经身份验证的调用......”
- python - 在张量流中正确设置学习率的指数衰减
- swift - 如何在 UIImage 的不透明像素周围绘制边框(笔划)
- c++ - 向量
- python - vispy visual.HistogramVisual
- c# - 如何在dotnet core中获取BsonElement值以获取mongodb字段名称的字符串