私は宿題をして、stackoverflowで以前に回答されたサンプルとトピックの両方をグーグルで検索しました。しかし、何も見つかりませんでした。
私の問題は、矢印のようなビューを持たない通常のエッジです。
ターゲットから目的地への前方矢印があることを期待するために私が行うことは次のとおりです。
LabelRenderer nameLabel = new LabelRenderer( "name"); nameLabel.setRoundedCorner(8、8); DefaultRendererFactory rendererFactory = new DefaultRendererFactory(nameLabel); EdgeRenderer edgeRenderer; edgeRenderer = new EdgeRenderer(prefuse.Constants.EDGE_TYPE_LINE、prefuse.Constants.EDGE_ARROW_FORWARD); rendererFactory.setDefaultEdgeRenderer(edgeRenderer); vis.setRendererFactory(rendererFactory);
エッジの色について私が見ているものは次のとおりです。これらが透明であってはならないことを願っています。
int[]パレット=newint [] {ColorLib.rgb(255、180、180)、ColorLib.rgb(190、190、255)}; DataColorAction fill = new DataColorAction( "socialnet.nodes"、 "gender"、Constants.NOMINAL、VisualItem.FILLCOLOR、palette); ColorAction text = new ColorAction( "socialnet.nodes"、VisualItem.TEXTCOLOR、ColorLib.gray(0)); ColorActionエッジ=newColorAction( "socialnet.edges"、VisualItem.STROKECOLOR、ColorLib.gray(200)); ColorAction arrow = new ColorAction( "socialnet.edges"、VisualItem.FILLCOLOR、ColorLib.gray(200)); ActionList color = new ActionList(); colour.add(fill); colour.add(text); colour.add(edges); colour.add(arrow); vis.putAction( "colour"、colour);
したがって、私はどこが間違っているのだろうか?エッジが矢印のように見えないのはなぜですか?
アイデアをありがとう。
詳細については、すべてのコードを貼り付けます。
/ * *このテンプレートを変更するには、[ツール]|[ツール]を選択します。テンプレート *そしてエディターでテンプレートを開きます。 * / パッケージprefusedeneme; インポートjavax.swing.JFrame; prefuse.data。*をインポートします。 prefuse.data.io。*をインポートします。 prefuse.Displayをインポートします。 prefuse.Visualizationをインポートします。 prefuse.render。*をインポートします。 prefuse.util。*をインポートします。 prefuse.action.assignment。*をインポートします。 prefuse.Constantsをインポートします。 prefuse.visual。*をインポートします。 prefuse.action。*をインポートします。 prefuse.activity。*をインポートします。 prefuse.action.layout.graph。*をインポートします。 prefuse.controls。*をインポートします。 import prefuse.data.expression.Predicate; import prefuse.data.expression.parser.ExpressionParser; パブリッククラスSocialNetworkVis{ public static void main(String argv []){ //1.データをロードします グラフグラフ=null; /*グラフにはコアデータが含まれます*/ 試す { グラフ=新しいGraphMLReader()。readGraph( "socialnet.xml"); /*XMLファイルからデータをロードします*/ } catch(DataIOException e){ e.printStackTrace(); System.err.println( "グラフの読み込みエラー。終了しています..."); System.exit(1); } //2.ビジュアライゼーションを準備します Visualization vis = new Visualization(); /*visは視覚化を実行するメインオブジェクトです*/ vis.add( "socialnet"、グラフ); /*ビジュアライゼーションにデータを追加します*/ //3.レンダラーとレンダーファクトリをセットアップします //名前のラベル LabelRenderer nameLabel = new LabelRenderer( "name"); nameLabel.setRoundedCorner(8、8); / * nameLabelは、「name」というラベルの付いたデータ要素を描画する方法を説明します* / //レンダリングファクトリを作成します DefaultRendererFactory rendererFactory = new DefaultRendererFactory(nameLabel); EdgeRenderer edgeRenderer; edgeRenderer = new EdgeRenderer(prefuse.Constants.EDGE_TYPE_LINE、prefuse.Constants.EDGE_ARROW_FORWARD); rendererFactory.setDefaultEdgeRenderer(edgeRenderer); vis.setRendererFactory(rendererFactory); //4.アクションを処理します //名目データ型のカラーパレット int[]パレット=newint [] {ColorLib.rgb(255、180、180)、ColorLib.rgb(190、190、255)}; /*ColorLib.rgbは色の値を整数に変換します*/ //データをパレットの色にマップします DataColorAction fill = new DataColorAction( "socialnet.nodes"、 "gender"、Constants.NOMINAL、VisualItem.FILLCOLOR、palette); / *塗りつぶしは、データの一部に基づいてグラフを描画する色を示します* / //ノードテキスト ColorAction text = new ColorAction( "socialnet.nodes"、VisualItem.TEXTCOLOR、ColorLib.gray(0)); /*テキストはテキストを描画する色を説明します*/ // 縁 ColorActionエッジ=newColorAction( "socialnet.edges"、VisualItem.STROKECOLOR、ColorLib.gray(200)); ColorAction arrow = new ColorAction( "socialnet.edges"、VisualItem.FILLCOLOR、ColorLib.gray(200)); /*エッジはエッジを描画する色を示します*/ //色の割り当てをアクションリストに結合します ActionList color = new ActionList(); colour.add(fill); colour.add(text); colour.add(edges); colour.add(arrow); vis.putAction( "colour"、colour); /*ビジュアライゼーションにカラーアクションを追加します*/ //レイアウト用に別のアクションリストを作成します ActionListレイアウト=新しいActionList(Activity.INFINITY); layout.add(new ForceDirectedLayout( "socialnet")); /*デフォルトパラメータで力指向グラフレイアウトを使用します*/ layout.add(new RepaintAction()); /*グラフノードが移動するたびに再描画します*/ vis.putAction( "layout"、layout); /*ビジュアライゼーションにラウトアクションを追加します*/ //5.視覚化のためのインタラクティブなコントロールを追加します ディスプレイdisplay=new Display(vis); display.setSize(700、700); display.pan(350、350); //中央にパン display.addControlListener(new DragControl()); /*アイテムをドラッグできるようにします*/ display.addControlListener(new PanControl()); / *ディスプレイをパンできるようにする(左/右、上/下に移動)(左ドラッグ)* / display.addControlListener(new ZoomControl()); / *ディスプレイをズームできるようにします(右ドラッグ)* / //6.JFrameでビジュアライザーを起動します JFrame frame = new JFrame( "prefuseチュートリアル:socialnet"); /*フレームはメインウィンドウです*/ frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.add(display); / *ウィンドウにディスプレイ(視覚化を保持する)を追加します* / frame.pack(); frame.setVisible(true); /*視覚化作業を開始します*/ vis.run( "colour"); vis.run( "layout"); } }