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

发布于 2024-12-08 08:25:48 字数 1477 浏览 1 评论 0原文

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

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 的假设正确吗?或者为什么使用布尔值?

I want to set bold the charecters within specific range as Bold. How could I do that?

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

The above code doesnt works properly.
But,

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

    }

this code works fine.

StyleConstants.setStrikeThrough(getMainStyle(), {SET/RESET});
Is my assumption true about SET/RESET or why boolean is used?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

べ繥欢鉨o。 2024-12-15 08:25:48

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

样式常量:setBold(MutableAttributeSet a, boolean b)

The boolean is to set it to bold or not.

StyleConstants: setBold(MutableAttributeSet a, boolean b)

别闹i 2024-12-15 08:25:48

已解决://必须在第二个参数中指定长度。

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

SOLVED: //MUST SPECIFY A LENGTH IN SECOND ARGUMENT.

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.

instead of

 docs.setCharacterAttributes( (int) keywordTracer.keywords.get(index).getFirst(),
      (int) keywordTracer.keywords.get(index).getSecond(),getMainStyle(),true); 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文