0

グラフ全体で対応を表示できるように、Jgrapht を使用してエッジの色を変更したいと思います。ノード 1 と 2 の間にエッジがあると仮定します。これらのノードを (たとえば) 赤色で強調表示します。グラフ全体でノード 1 と 2 を見つけ、それらを赤色で表示し、残りのノードを別の色で表示します。ビジュアライゼーションを作成するファイルはSimpleTouchgraphApplet.java です。このファイルには、次のようなステートメントを追加しています。

setBackground(Color.green);
setForeground(Color.cyan);

上記の 2 つのステートメントを init セクションに追加しました。メイン関数に以下のステートメントも追加しました。

Color defaultBackColor = new Color(0x01, 0x11, 0x44);
JFrame frame = new JFrame();
frame.setBackground(defaultBackColor);
frame.setForeground(Color.CYAN);

ただし、前景色や背景色に変化は見られません。どこが間違っているのか教えてください。

4

1 に答える 1

0

I found that the edge coloring can be added in the TouchGraphConverter.java file.

The following function constructs the nodes.

public Node convertToTouchGraph(
    Graph<V, E> graph,
    TGPanel tgPanel,
    boolean selfReferencesAllowed)
    throws TGException
{
    List<V> jgtNodes = new ArrayList<V>(graph.vertexSet());
    Node [] tgNodes = new Node[jgtNodes.size()];

    // add all the nodes...
    for (int i = 0; i < jgtNodes.size(); i++) {
        Node n;
        if (jgtNodes.get(i) instanceof Node) {
            // if our JGraphT object was a touchGraph node, add it unaltered
            n = (Node) jgtNodes.get(i);
        } else {
            // create a TG Node with a "label" and "id" equals to the
            // objects toString() value
            n = new Node(jgtNodes.get(i).toString());

        }

        // store this for edge-related creation below
        tgNodes[i] = n;
        tgPanel.addNode(n);
        tgNodes[i].setBackColor(Color.RED);

The last line, tgNodes[i].setBackColor(Color.RED) will make the node color to red in the generated graph.

于 2013-04-08T21:14:23.310 に答える