1

特定の範囲内の文字を太字に設定したい。どうすればそれができますか?

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について、またはブール値が使用される理由について、私の仮定は正しいですか?

4

2 に答える 2

1

ブール値は、太字にするかどうかを設定することです。

StyleConstants:setBold(MutableAttributeSet a、boolean b)

于 2011-10-06T08:30:03.067 に答える
1

解決済み://2番目の引数の長さを指定する必要があります。

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); 
于 2011-10-06T08:53:15.337 に答える