java jtextarea怎样实现文本过滤

   2024-10-02 5260
核心提示:要在Java中实现文本过滤,可以使用JTextArea的Document类来实现。以下是一个简单的示例代码,演示如何过滤掉文本中的敏感词汇:i

要在Java中实现文本过滤,可以使用JTextArea的Document类来实现。以下是一个简单的示例代码,演示如何过滤掉文本中的敏感词汇:

import javax.swing.*;import javax.swing.text.AttributeSet;import javax.swing.text.BadLocationException;import javax.swing.text.PlainDocument;public class FilteredTextArea extends JTextArea {    private String[] sensitiveWords = {"bad", "evil", "hate"};    public FilteredTextArea() {        setDocument(new FilteredDocument());    }    private class FilteredDocument extends PlainDocument {        @Override        public void insertString(int offs, String str, AttributeSet a) throws BadLocationException {            if (str == null) {                return;            }            for (String word : sensitiveWords) {                if (str.toLowerCase().contains(word)) {                    JOptionPane.showMessageDialog(null, "The word '" + word + "' is not allowed.");                    return;                }            }            super.insertString(offs, str, a);        }    }    public static void main(String[] args) {        JFrame frame = new JFrame("Filtered Text Area");        FilteredTextArea textArea = new FilteredTextArea();        frame.add(new JScrollPane(textArea));        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        frame.setSize(400, 300);        frame.setVisible(true);    }}

在这个示例代码中,我们首先创建了一个FilteredTextArea类,继承自JTextArea,并在构造方法中设置了一个敏感词汇数组。然后,我们定义了一个内部类FilteredDocument,继承自PlainDocument,并重写了insertString方法,在该方法中检查插入的字符串是否包含敏感词汇,如果包含,则弹出提示框并不插入该字符串。最后,在main方法中创建了一个JFrame并添加了一个带滚动条的FilteredTextArea实例。

这样,当用户在FilteredTextArea中输入包含敏感词汇的字符串时,将会弹出提示框并自动过滤掉该字符串。您可以根据自己的需求和敏感词汇列表定制更复杂的文本过滤逻辑。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式 | 网站留言    |  赣ICP备2021007278号