java如何高亮显示文本框中的内容
时间: 2024-05-14 19:16:31 浏览: 107
在Java中,可以使用JTextPane组件来实现文本高亮显示。JTextPane可以设置样式,包括字体、颜色、背景等,从而实现高亮显示。
以下是一个简单的示例代码,演示如何在文本框中高亮显示文本:
```java
import javax.swing.*;
import javax.swing.text.*;
public class HighlightTextExample {
public static void main(String[] args) {
JFrame frame = new JFrame("Highlight Text Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JTextPane textPane = new JTextPane();
textPane.setText("This is a text with some highlighted words.");
StyledDocument doc = textPane.getStyledDocument();
// 设置样式
Style style = textPane.addStyle("highlight", null);
StyleConstants.setBackground(style, Color.YELLOW);
StyleConstants.setForeground(style, Color.RED);
// 高亮显示文本
String text = textPane.getText();
int startIndex = text.indexOf("highlighted");
int endIndex = startIndex + "highlighted".length();
doc.setCharacterAttributes(startIndex, endIndex - startIndex, textPane.getStyle("highlight"), true);
frame.add(textPane);
frame.pack();
frame.setVisible(true);
}
}
```
在这个示例中,我们首先创建了一个JTextPane组件,并设置了文本。然后,我们获取了JTextPane的StyledDocument对象,并使用addStyle()方法创建了一个名为“highlight”的样式。接下来,我们用getStyle()方法获取这个样式,然后使用setCharacterAttributes()方法将指定的文本区域应用到这个样式,从而实现了高亮显示。
需要注意的是,setCharacterAttributes()方法的第四个参数是一个布尔值,表示是否覆盖原有的样式。如果设为true,就会覆盖原有的样式,否则就会在原有样式的基础上添加新的样式。在这个示例中,我们将其设为true,因为我们只想应用一个样式。
阅读全文