2

次のように宣言された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

4

2 に答える 2

3

まだ頭を悩ませている人のために、選択されていない頂点/エッジラベルの色を変更できる2つの簡単なクラスがあります。

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;
    }
}
于 2012-12-18T10:51:52.980 に答える
0

選択されていない頂点ラベルの色を(赤に)設定する別の方法は次のとおりです。

vv.setForegroundColor(Color.red);

頂点(およびエッジ)ラベルはJLabelを使用し、ビジュアライゼーションビューアから前景色を取得します。

于 2018-02-16T16:55:40.110 に答える