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

10-07 19:01
查看更多