0

JUNG 既存の 2 つの頂点JUNGを接続して頂点に接続し、余分な頂点を作成するときに、頂点の作成、接続、および色付けのコマンドを取得するためのインターフェイスを実装しています。なぜですか?

connect メソッドのコードは次のとおりです。

public class Connect extends Command {
private CommandMaster cm;
private BehGraphUndirected behGraph;
private static int edgenumber=0;
@Override
public Object run(BehGraphUndirected behGraph, VisualizationImageServer panel, InterpretMaster interpretMaster, String... args) {

    System.out.print("connect Runs\n");
    this.cm = new CommandMaster();
    this.behGraph = behGraph;

    if(cm.exists(args[0]))
    {
        //got to another command
    }else
    {
        switch (args[0]) {
            case "edge":
                this.createEdge(args[1] , args[2]);
                break;
        }
    }
    interpretMaster.refreshAndRepaint();
    return null;

}
public void createEdge(String nodeName1 , String nodeName2)
{
    this.behGraph.addEdge(edgenumber++,nodeName1, nodeName2);
    System.out.println(this.behGraph.getVertexCount());
    System.out.println("edge between: "+nodeName1+" and "+ nodeName2+" added");
}

私がコードを実装した方法を知りたい場合に備えて、これは create メソッドです。

package interpreter.command;

import GraphHandling.BehGraphUndirected;
import edu.uci.ics.jung.visualization.VisualizationImageServer;
import interpreter.Command;
import interpreter.CommandMaster;
import interpreter.InterpretMaster;


/**
*
* @author Administrator
*/
public class Create extends Command{
private CommandMaster cm;
private BehGraphUndirected behGraph;

@Override
public Object run(BehGraphUndirected behGraph, VisualizationImageServer panel, InterpretMaster interpretMaster, String... args) {
    System.out.print("create Runs \n");

    this.cm = new CommandMaster();
    this.behGraph = behGraph;

    if(cm.exists(args[0]))
    {
        //got to another command
    }else
    {
        switch (args[0]) {
            case "node":
                this.createNode(args[1]);
                break;
            case "label":
                this.createLabel(args[1]);
                break;
        }
    }
    interpretMaster.refreshAndRepaint();
    return null;
}
public void createNode(String nodeName)
{
    this.behGraph.addVertex(nodeName);
    System.out.print("vertex: "+nodeName+" added");
}

private void createLabel(String string) {

}
class str
{
    int i;
    long j;
}

}

2 つのノードを接続する前後のグラフ イメージ:

ここに画像の説明を入力

ここに画像の説明を入力

そしてここに私のBehGraphUndirectedクラスがあります:

package GraphHandling;

import edu.uci.ics.jung.graph.UndirectedSparseGraph;
import java.util.LinkedList;

/**
*
* @author Administrator
*/
public class BehGraphUndirected extends UndirectedSparseGraph{
private final LinkedList<Node> nodeList;

public BehGraphUndirected()
{ 
    this.nodeList = new LinkedList<>();
}
public void addNode(Node newNode)
{
   this.nodeList.add(newNode);
}

}
4

2 に答える 2

1

私はあなたのコードをコンパイルしてテストしました ,ライブラリは正しく動作しているようであり、それに与えられた異なるt によってJung異なるものを消し去ります. ノードを作成するオブジェクトとして使用されるという問題のように、他の問題があるようです.nodesobjecprocessing the input strings

于 2015-01-01T08:28:49.953 に答える
0

BehGraphUndirected が行っていることを確認する必要があります。JUNG クラスやインターフェイスではありません。

作成される頂点の名前は何ですか?それは create メソッドに渡されるものとどのように関連していますか?

于 2014-12-21T00:17:11.353 に答える