что означает логический аргумент в StyleConstants.setBold?

#java #swing #jtextpane #styleddocument

#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 или почему используется boolean ?

Ответ №1:

Логическое значение заключается в том, чтобы выделить его жирным шрифтом или нет.

StyleConstants: setBold(MutableAttributeSet a, boolean b)

Ответ №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);