Webアプリ開発エンジニアのための技術情報サイト「テックスコア」

3. PluggableRenderer の使い方

2006.02.06 株式会社四次元データ 鈴木 圭

前回の最後にも触れましたが、PluggableRenderer は非常に柔軟なクラスです。例えば、頂点の色、形、エッジの線の種類などを個別に設定することができます。今回は PluggableRenderer の具体的な使い方を紹介していきます。

3.1. 頂点の色の設定

頂点の色を設定するには、PluggableRenderer の void setVertexPaintFunction(VertexPaintFunction) というメソッドを使用します。引数に渡す edu.uci.ics.jung.graph.decorators.VertexPaintFunction インタフェースは、頂点の枠線の色を返す Paint getDrawPaint(Vertex) メソッドと、内側を塗り潰すときの色を返す Paint getFillPaint(Vertex) メソッドを持っています。

まずはサンプルコードを見てください。

PluggableRenderer renderer = new PluggableRenderer();

...

renderer.setVertexPaintFunction(
    new PickableVertexPaintFunction(
        renderer,         // 頂点が選択されているかどうかを判別するための PickedInfo.
        Color.DARK_GRAY,  // 輪郭の色.
        Color.MAGENTA,    // 非選択時の色.
        Color.GREEN)      // 選択時の色.
        );

これを PluggableRenderer に設定した場合の動作例を示します。なお、緑色になっている頂点は選択状態となっています(頂点はドラッグ中などに選択状態となります)。

頂点の色の設定

サンプルコードでは、VertexPaintFunction の実装クラスとして edu.uci.ics.jung.graph.decorators.PickableVertexPaintFunction を使用しています。PickableVertexPaintFunction のコンストラクタ PickableVertexPaintFunction(PickedInfo, Paint, Paint, Paint) の第一引数には、edu.uci.ics.jung.visualization.PickedInfo インタフェースを実装したクラスを指定します。PickedInfo は頂点やエッジが選択されているかどうかを判別するためのインタフェースです。PluggableRenderer は PickedInfo を実装しています。第二引数以降は、順に、輪郭の色、非選択時の色、選択時の色を指定します。

PickableVertexPaintFunction の他に VertexPaintFunction を実装したクラスとして edu.uci.ics.jung.graph.decorators.ConstantVertexPaintFunction クラスがあります。ConstantVertexPaintFunction は頂点の選択/非選択によらず同じ色で描画したい場合に使用します。

3.2. 頂点の輪郭のストロークの設定

頂点の輪郭のストロークを設定するには PluggableRenderer の void setVertexStrokeFunction(VertexStrokeFunction) メソッドを使用します。引数に渡す edu.uci.ics.jung.graph.decorators.VertexStrokeFunction インタフェースは頂点の輪郭を返す Stroke getStroke(Vertex) メソッドを持ちます。以下に、使用例を示します。

PluggableRenderer renderer = new PluggableRenderer();

...

renderer.setVertexStrokeFunction(
    new ConstantVertexStrokeFunction(5)    // 太さ 5
    );

頂点の輪郭のストロークの設定

ここでは VertexStrokeFunction を実装したクラスとして edu.uci.ics.jung.graph.decorators.ConstantVertexStrokeFunction クラスを使用しています。ConstantVertexStrokeFunction のコンストラクタには、ストロークの太さを指定します。



前のページへ TECHSCOREのTOPページへ 次のページへ
TECHSCORE PR
PR
PR
PR
PR
PR

techscore(トップページへ)
TECHSCORE書店
TECHSCOREトップページJavaSQLXMLリッチクライアントモデリングセマンティックWebその他技術Tuigwaa