0

JTextAreaがあり、ユーザーがJtextAreaにテキストを貼り付けたときに聞きたいです。具体的には、次のことを行いたいと思います。

貼り付けたテキストを取得し、空白を削除して、JTextAreaテキストを(ユーザーが貼り付けた元のテキストではなく)スペースを含まない編集済みテキストに置き換えます。

java.lang.UnsupportedOperationException: Not supported yet.DocumentListenerを使用し、次のコードの結果として発生するを回避するには、どうすればよいですか。

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

method に問題はありませんinsertUpdate(DocumentEvent documentEvent)。JTextArea は chars 入力のみを受け入れることができます。問題がある場合は、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 に答える