如何在JGraphX图上绘制Graphics2D?

时间:2013-10-24 07:07:41

标签: java jgraphx

标题说明了一切,我想知道如何在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();

但没有任何运气。你能给我一些提示吗?

1 个答案:

答案 0 :(得分: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());
相关问题