如何突出显示 JTextArea 中的单个单词[已关闭]

问题描述 投票:0回答:1

我想读取用户输入的文本,然后突出显示特定单词并将其返回给用户。我可以阅读文本并将其返回给用户,但我不知道如何突出显示单个单词。如何使用 java swing 在 JTextArea 中突出显示单个单词?

java swing jtextarea swing-highlighter
1个回答
17
投票
DefaultHighlighter

附带的

JTextArea
。例如,
import java.awt.Color;
import javax.swing.*;
import javax.swing.text.BadLocationException;
import javax.swing.text.DefaultHighlighter;
import javax.swing.text.Highlighter;
import javax.swing.text.Highlighter.HighlightPainter;

public class Foo001 {
   public static void main(String[] args) throws BadLocationException {
      
      JTextArea textArea = new JTextArea(10, 30);
       
      String text = "hello world. How are you?";
      
      textArea.setText(text);
      
      Highlighter highlighter = textArea.getHighlighter();
      HighlightPainter painter = 
             new DefaultHighlighter.DefaultHighlightPainter(Color.pink);
      int p0 = text.indexOf("world");
      int p1 = p0 + "world".length();
      highlighter.addHighlight(p0, p1, painter );
      
      JOptionPane.showMessageDialog(null, new JScrollPane(textArea));          
   }
}

添加突出显示()

参数

    p0
  • - 范围的开始 >= 0
  • p1
  • - 范围结束 >=
    p0
  • p
  • - 用于实际突出显示的画家
    
    
退货

引用突出显示的对象

投掷

BadLocationException

- 对于无效的范围规范

    

© www.soinside.com 2019 - 2024. All rights reserved.