0

我想使用 Jgrapht 更改边缘的颜色,以便可以在整个图表中显示对应关系。让我们假设节点 1 和 2 之间有一条边。我将用(比如说)红色突出显示这些节点。我将在整个图中找到节点 1 和 2,并以红色显示它们,其余节点以其他颜色显示。我看到创建可视化的文件是SimpleTouchgraphApplet.java在这个文件中,我添加了如下语句,

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

我在 init 部分添加了上述两个语句。我还在我的主要功能中添加了以下语句。

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

但是,我没有看到前景色或背景色有任何变化。请让我知道哪里出错了。

4

1 回答 1

0

我发现可以在 TouchGraphConverter.java 文件中添加边缘着色。

以下函数构造节点。

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

最后一行tgNodes[i].setBackColor(Color.RED)将使生成图中的节点颜色变为红色。

于 2013-04-08T21:14:23.310 回答