Java Intellij Idea如何添加装订线图标?

Posted

技术标签:

【中文标题】Java Intellij Idea如何添加装订线图标?【英文标题】:Java Intelij Idea how to add gutter icon? 【发布时间】:2020-06-25 15:23:51 【问题描述】:

在我的 IntelliJ idea 插件项目中,我遇到了渲染排水沟图标的问题。

我想在行号旁边呈现装订线图标,但它只呈现小矩形。装订线图标路径已正确加载,装订线图标大小为 12x12px,格式为 png。你能帮帮我吗?

我的代码:

public static void addLineHighlight(Document document, int lineNumber,
                                        String text) 


        Icon highlightIcon = IconLoader.getIcon("META-INF/fail.png");

        addGutterIcon(getRangeHighlighter(document, lineNumber), highlightIcon, text);
    


    @NotNull
    private static RangeHighlighter getRangeHighlighter(Document document, int lineNumber) 
        MarkupModel markupModel = getMarkupModel(document);
        TextAttributes textAttributes = getTextAttributes();

        RangeHighlighter highlighter;
        highlighter = markupModel.addLineHighlighter(lineNumber, 66 , textAttributes);
        return highlighter;
    

    private static void addGutterIcon(@NotNull RangeHighlighter highlighter, Icon icon, String text) 

        highlighter.setGutterIconRenderer(new GutterIconRenderer() 
            @Override
            public boolean equals(Object obj) 
                return false;
            

            @Override
            public int hashCode() 
                return 0;
            

            @NotNull
            @Override
            public Icon getIcon() 
                return icon;
            
        );

    

    private static MarkupModel getMarkupModel(Document document) 
        return DocumentMarkupModel.forDocument(document, TestSingleton.getInstance().getProject(), true);
    

    @NotNull
    private static TextAttributes getTextAttributes() 
        TextAttributes textAttributes = null;
        textAttributes = new TextAttributes();
        textAttributes.setBackgroundColor(JBColor.RED);
        textAttributes.setErrorStripeColor(JBColor.RED);
        return textAttributes;
    


【问题讨论】:

我相信你应该使用 com.intellij.codeInsight.daemon.LineMarkerProvider。见this post 和this example 【参考方案1】:

我相信您应该使用 com.intellij.codeInsight.daemon.LineMarkerProvider

参见this post 和this example。

【讨论】:

以上是关于Java Intellij Idea如何添加装订线图标?的主要内容,如果未能解决你的问题,请参考以下文章

如何将Java API文档添加到Intellij IDEA

idea单元测试左侧装订线中的颜色指示器设置

如何在 Bootstrap 3 网格系统中调整装订线?

IntelliJ IDEA 去掉红色波浪线

命令行 ImageMagick 装订线和裁剪标记

Intellij IDEA怎么手动给module添加内置依赖库