0

我有一个 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);
            }
         });

    }
4

2 回答 2

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

于 2012-06-05T19:23:43.523 回答
0

如果您想删除正则\S or \s表达式中的白色字符。如果你想只删除空格,你可以用同样的方式来做。阅读有关正则表达式的更多信息:http: //docs.oracle.com/javase/1.4.2/docs/api/java/util/regex/Pattern.html

于 2012-06-05T19:29:18.830 回答