我有一个JTextArea,当用户在JtextArea中粘贴文本时,我想听。具体来说,我想执行以下操作:
获取他们粘贴的文本,删除空格,并将JTextArea文本替换为已编辑的文本(不带空格)(而不是用户粘贴的原始文本)。
我该如何使用DocumentListener并避免使用java.lang.UnsupportedOperationException: Not supported yet.
,这是以下代码的结果:
public void insertUpdate(DocumentEvent de) {
final String replace = jTextArea1.getText().replaceAll("\\s","");
SwingUtilities.invokeLater(new Runnable() {
public void run() {
jTextArea1.setText(replace);
}
});
}
最佳答案
我对方法insertUpdate(DocumentEvent documentEvent)
没任何问题,请确保JTextArea仅接受字符输入,如果使用JEditorPane会遇到问题,那么您也可以导入另一个Java AWT和Swing对象
代码示例
private DocumentListener docListener = new DocumentListener() {
@Override
public void changedUpdate(DocumentEvent documentEvent) {
printIt(documentEvent);
}
@Override
public void insertUpdate(DocumentEvent documentEvent) {
printIt(documentEvent);
}
@Override
public void removeUpdate(DocumentEvent documentEvent) {
printIt(documentEvent);
}
private void printIt(DocumentEvent documentEvent) {
DocumentEvent.EventType type = documentEvent.getType();
//your code
}
};
要替换插入的字符,您必须添加DocumentFilter