用Swing绘制图形:一般方法

时间:2011-09-03 11:18:56

标签: java swing graph drawing

假设我有一个由节点和边组成的图形,我想在Swing应用程序中绘制它。 我不是Swing程序员,但据我所知,我看到两种方法:

  1. 将整个图表绘制为组件
  2. 将每个节点和边缘绘制为单个组件
  3. 我见过第一个应用程序。要拖动绘制为圆形的节点,应用程序将检查与所单击点最近的节点。在我看来,这不是很有效。 第二种方法可行吗?应该遵循哪一个,为什么?

2 个答案:

答案 0 :(得分:7)

我们编写并维护JGraph,经过10年的努力,我们仍然只有一个flyweight渲染器可以绘制所有单元格。原因是每个单元的组件的内存成本。缺点是你需要自己处理刷新和事件处理,但这并不是那么糟糕。

我们已经多次进行了覆盖,总是得出相同的结论。

答案 1 :(得分:2)

这两种方法都是可行的,具体取决于要求。 GraphPanel是单个组件的简单示例,而JGraph是一个更灵活的库,使用flyweight pattern进行高效渲染。