StyleConstants.setBold中boolean参数的含义是什么?

时间:2011-10-06 08:25:56

标签: java swing jtextpane styleddocument

我希望将特定范围内的字符粗体设置为粗体。我怎么能这样做?

System.out.println("Painting keywords:.......");
    for(int index =0;index<keywordTracer.keywords.size();index++ )
        {
            StyleConstants.setBold(getMainStyle(), true);
            System.out.printf("\nkeywords found at line :%d %d", (int) keywordTracer.keywords.get(index).getFirst(),(int) keywordTracer.keywords.get(index).getSecond());
            docs.setCharacterAttributes( (int) keywordTracer.keywords.get(index).getFirst(),(int) keywordTracer.keywords.get(index).getSecond(),getMainStyle(),true); 
            StyleConstants.setBold(getMainStyle(), false);
        }

上面的代码无法正常运行。 但是,

//System.out.println("Painting Invalid Syntaxes:.......");
    for(int index =0;index<ColorTracer.invalidSyntax.size();index++ )
    {
        StyleConstants.setStrikeThrough(getMainStyle(), true);
        StyleConstants.setForeground(getMainStyle(), Color.orange);
        System.out.printf("\nInvalid syntax at line :%d %d", (int) ColorTracer.invalidSyntax.get(index),(int) ColorTracer.invalidSyntax.get(index)+1 );
        docs.setCharacterAttributes( (int) ColorTracer.invalidSyntax.get(index),1,getMainStyle(),true); //Till only one charecter
        StyleConstants.setStrikeThrough(getMainStyle(), false);

    }

此代码工作正常。

  

StyleConstants.setStrikeThrough(getMainStyle(),{SET / RESET});   我的假设是关于SET / RESET还是为什么使用布尔值?

2 个答案:

答案 0 :(得分:1)

布尔值是将其设置为粗体。

  

StyleConstants:setBold(MutableAttributeSet a,boolean b)

答案 1 :(得分:1)

解决://必须在第二个论点中指明一个长度。

docs.setCharacterAttributes( (int) keywordTracer.keywords.get(index).getFirst(),
     (int) keywordTracer.keywords.get(index).getSecond()-(int)
     keywordTracer.keywords.get(index).getFirst(),getMainStyle(), 
     false); //MUST SPECIFY A LENGTH IN SECOND ARGUMENT.

而不是

 docs.setCharacterAttributes( (int) keywordTracer.keywords.get(index).getFirst(),
      (int) keywordTracer.keywords.get(index).getSecond(),getMainStyle(),true);