1

タイトルがすべてを物語っていますが、JGraphX グラフで Graphics2D を使用してどのように描画できるのでしょうか? 私はこのようなことを試しました:

mxGraphComponent graphComponent = ...;
// ...
Graphics2D g = (Graphics2D)graphComponent.getGraphics();
g.setColor(Color.BLACK);
g.drawLine(0, 0, 500, 500);
graph.refresh();
graphComponent.refresh();
graphComponent.repaint();

しかし運がない。ヒントを教えてください。

4

1 に答える 1

1

まず、graph.refresh();コンポーネントのグラフィックスのすべてのグラフを再レンダリングするため、dranw ラインを消去します。

次に、ADT スレッドで draw 関数を呼び出すことを忘れないでください。

final Graphics2D g = (Graphics2D)graphComponent.getGraphics();
Runnable r = new Runnable() {
   public void run() {
      g.setColor(Color.BLACK);
      g.drawLine(0, 0, 500, 500);
   }
};

if (!SwingUtilities.isEventDispatchThread()) {
    SwingUtilities.invokeLater(r);
} else {
    r.run();
}

それ以外は、コンポーネントに長方形を正常に描画したので、正常に動作するはずです。

ただし、グラフがズームされている場合、またはスクロール ペインが原点にない場合は、次の方法でポイントを変換する必要があることに注意してください。

    Point p = SwingUtilisties.convertPoint(graphComponent, x,y, 
              graphComponent.getGraphControl());
于 2013-10-24T15:46:11.350 に答える