colors - JUNG:未选取的顶点标签颜色

标签 colors label renderer jung vertex

我可以使用如下声明的 vertexLabelRenderer 将拾取顶点标签设为红色:

DefaultVertexLabelRenderer vertexLabelRenderer=new DefaultVertexLabelRenderer(Color.RED);

如何更改未拾取顶点标签的颜色。构造函数(见下文)仅允许定义未拾取顶点标签。 setForeground() 方法也不会影响字体颜色。

这里是 JUNG 2.0.1 API 文档: http://jung.sourceforge.net/site/apidocs/edu/uci/ics/jung/visualization/renderers/DefaultVertexLabelRenderer.html

最佳答案

对于仍然摸不着头脑的人,这里有两个简单的类,可以更改未选取的顶点/边标签颜色。

public class MyDefaultVertexLaberRenderer extends DefaultVertexLabelRenderer
{
    protected Color unpickedVertexLabelColor = Color.BLACK;

    public MyDefaultVertexLaberRenderer(Color unpickedVertexLabelColor, Color pickedVertexLabelColor)
    {
        super(pickedVertexLabelColor);
        this.unpickedVertexLabelColor = unpickedVertexLabelColor;
    }

    public <V> Component getVertexLabelRendererComponent(JComponent vv, Object value, Font font, boolean isSelected, V vertex)
    {
        super.setForeground(unpickedVertexLabelColor);
        if (isSelected) setForeground(pickedVertexLabelColor);
        super.setBackground(vv.getBackground());
        if (font != null)
        {
            setFont(font);
        }
        else
        {
            setFont(vv.getFont());
        }
        setIcon(null);
        setBorder(noFocusBorder);
        setValue(value);
        return this;
    }
}

public class MyDefaultEdgeLaberRenderer extends DefaultEdgeLabelRenderer
{
    protected Color unpickedEdgeLabelColor = Color.BLACK;

    public MyDefaultEdgeLaberRenderer(Color unpickedEdgeLabelColor, Color pickedEdgeLabelColor)
    {
        super(pickedEdgeLabelColor);
        this.unpickedEdgeLabelColor = unpickedEdgeLabelColor;
    }

    public <E> Component getEdgeLabelRendererComponent(JComponent vv, Object value, Font font, boolean isSelected, E edge)
    {
        super.setForeground(unpickedEdgeLabelColor);
        if (isSelected) setForeground(pickedEdgeLabelColor);
        super.setBackground(vv.getBackground());

        if (font != null)
        {
            setFont(font);
        }
        else
        {
            setFont(vv.getFont());
        }
        setIcon(null);
        setBorder(noFocusBorder);
        setValue(value);
        return this;
    }
}

关于colors - JUNG:未选取的顶点标签颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11845842/

相关文章:

android - 在 Android 上更改 ListView 项目的背景颜色

c++ - 以编程方式确保随机调色板充满活力并且与背景截然不同

java - 安卓 | Java : Get the color of an edge of an image

ios - 具有固定宽度和 1 行的 UILabel,内容有时与省略号的训练不完全一致

google-chrome - 通过 Selenium Java 使用 ChromeDriver 和 Chrome v80 从渲染器接收消息超时 : 0. 100 条日志消息

opengl - 无法使用 FTGL 更改字体颜色

python - 将文本标签放置在不依赖于数据的 3D 坐标中

jquery - 设置复选框标签的颜色

golang renderer.HTML 没有从模板内部选择 javascript 文件

java - 初始化后对 JTable 行进行着色