突出显示java中HTML文档中某些单词的背景颜色
我正在以文本形式阅读HTML文档,并根据字符串数组从文档中提取匹配的字符串(带起始和结束索引)。现在我必须更改原始HTML文档中提取的字符串的背景色。但我不应该更改HTML文件的格式 因此,我使用的是“javax.swing.text.DefaultHighlighter.DefaultHighlightPainter”,它不会更改文档的格式。高亮显示后,我将文件保存在本地,然后在浏览器中查看以查看颜色。我不想为此使用任何编辑器,因为我的目的是在浏览器中查看。但颜色的更改并没有反映在这里,我没有意识到问题出在哪里。这是我的代码示例突出显示java中HTML文档中某些单词的背景颜色,java,html,jeditorpane,swing-highlighter,Java,Html,Jeditorpane,Swing Highlighter,我正在以文本形式阅读HTML文档,并根据字符串数组从文档中提取匹配的字符串(带起始和结束索引)。现在我必须更改原始HTML文档中提取的字符串的背景色。但我不应该更改HTML文件的格式 因此,我使用的是“javax.swing.text.DefaultHighlighter.DefaultHighlightPainter”,它不会更改文档的格式。高亮显示后,我将文件保存在本地,然后在浏览器中查看以查看颜色。我不想为此使用任何编辑器,因为我的目的是在浏览器中查看。但颜色的更改并没有反映在这里,我没有
public class TestEditer {
public static void main(String[] args) throws IOException, BadLocationException {
JEditorPane editor = new JEditorPane();
StringWriter writer = new StringWriter();
String output;
HTMLEditorKit htmlKit = new HTMLEditorKit();
List<Pattern> patternList = new ArrayList<Pattern>();
output = new Scanner(new File("C:/test.in")).useDelimiter("\\Z").next();//26787.in contains HTML text
editor.setText(output);
Document document = editor.getDocument();
String doc= document.getText(0, document.getLength());
System.out.println(document);
String[] names={"Shannon","Sperling","Kim","Tammy","Nancy","Lana"};
for (int i=0; i<names.length; i++)
{
String st = names[i];
Pattern p= Pattern.compile(st);
patternList.add(p);
}
System.out.println(patternList);
for (int i=0; i<patternList.size(); i++)
{
Matcher matcher = patternList.get(i).matcher(editor.getText());
int mStartPos=0;
int mEndPos=0;
while (matcher.find())
{
String matched = matcher.group();
System.out.println(matched);
mStartPos = matcher.start();
mEndPos = matcher.end();
System.out.println(mStartPos+" "+mEndPos);
DefaultHighlightPainter highlightPainter =new DefaultHighlightPainter(Color.RED);
editor.getHighlighter().addHighlight(mStartPos+1, mEndPos,
highlightPainter);
}
}
//htmlKit.write(writer, editor.getDocument(),0,editor.getDocument().getLength());
//String s=editor.getText();
File file = new File("C:/data/file.in");
editor.getEditorKit().write(writer,document,0,document.getLength());
String s1 = writer.toString();
FileWriter fw = new FileWriter(file.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);
bw.write(s1);
bw.close();
}
公共类测试员{
公共静态void main(字符串[]args)引发IOException、BadLocationException{
JEditorPane编辑器=新的JEditorPane();
StringWriter编写器=新的StringWriter();
字符串输出;
HTMLEditorKit htmlKit=新的HTMLEditorKit();
List patternList=new ArrayList();
输出=新扫描仪(新文件(“C:/test.in”)。使用分隔符(\\Z”)。下一步();//26787.in包含HTML文本
editor.setText(输出);
Document Document=editor.getDocument();
字符串doc=document.getText(0,document.getLength());
系统输出打印项次(文件);
String[]name={“Shannon”、“Sperling”、“Kim”、“Tammy”、“Nancy”、“Lana”};
对于(int i=0;i如何在input.txt文件上创建颜色?我可以插入标签,但无法在input.txt中插入颜色..txt文件不适用于富文本。这实际上是HTML,我将其作为txt文件读取。@Masud:您能告诉我问题出在哪里吗。