假设我有一个由节点和边组成的图形,我想在Swing应用程序中绘制它。 我不是Swing程序员,但据我所知,我看到两种方法:
我见过第一个应用程序。要拖动绘制为圆形的节点,应用程序将检查与所单击点最近的节点。在我看来,这不是很有效。 第二种方法可行吗?应该遵循哪一个,为什么?
答案 0 :(得分:7)
我们编写并维护JGraph
,经过10年的努力,我们仍然只有一个flyweight渲染器可以绘制所有单元格。原因是每个单元的组件的内存成本。缺点是你需要自己处理刷新和事件处理,但这并不是那么糟糕。
我们已经多次进行了覆盖,总是得出相同的结论。
答案 1 :(得分:2)
这两种方法都是可行的,具体取决于要求。 GraphPanel
是单个组件的简单示例,而JGraph
是一个更灵活的库,使用flyweight pattern进行高效渲染。