我有一个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);
}
});
}
答案 0 :(得分:1)
我对方法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
答案 1 :(得分:0)
如果您想在正则表达式中删除白色字符,请使用\S or \s
。如果你喜欢只去除空间,你可以用同样的方式去做。阅读有关正则表达式的更多信息:http://docs.oracle.com/javase/1.4.2/docs/api/java/util/regex/Pattern.html