java jtextarea怎样实现文本过滤

avatar
作者
猴君
阅读量:0

要在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中输入包含敏感词汇的字符串时,将会弹出提示框并自动过滤掉该字符串。您可以根据自己的需求和敏感词汇列表定制更复杂的文本过滤逻辑。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!