2011-10-06 62 views
1

我想在特定範圍內將粗體粗體設置爲粗體。我怎麼能這樣做?StyleConstants.setBold中布爾參數的含義是什麼?

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的假設是真的還是爲什麼使用布爾值?

回答

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); 
1

該布爾值將其設置爲粗體或不粗體。

StyleConstants:參考setBold(MutableAttributeSet的一個,布爾B)

相關問題