日期:2014-05-20 浏览次数:20988 次
// 设置语法高亮
public void setHighLight(StyledDocument doc, String token, int start, int length)
{
// 保存需要对当前单词对应的外观属性
SimpleAttributeSet currentAttributeSet = null;
outer: for (SimpleAttributeSet att : attMap.keySet())
{
// 取出当前颜色对应的所有关键字
ArrayList keywords = attMap.get(att);
// 遍历所有关键字
for (Object keyword : keywords)
{
// 如果该关键字与当前单词相同
if (keyword.toString().equals(token))
{
// 跳出循环,并设置当前单词对应的外观属性
currentAttributeSet = att;
break outer;
}
}
}
// 如果当前单词对应的外观属性不为空
if (currentAttributeSet != null)
{
// 设置当前单词的颜色
doc.setCharacterAttributes(start, length, currentAttributeSet, false);
}
else
{// 否则使用普通外观来设置该单词
doc.setCharacterAttributes(start, length, normalAttr, false);
}
}