【发布时间】:2011-11-07 13:37:22
【问题描述】:
我目前正在开展一个项目,我需要在墨卡托投影的世界地图上绘制卫星的预测足迹,并可能进行缩放/裁剪/等。完成到地图上。
我认为 Cairo 将是用于此目的的一个很好的库。有可用的 Java 绑定。但是,我只是找不到让它呈现到 SWING GUI 上的方法(例如,在 JPanel 的表面上)。我考虑过渲染到一个字节缓冲区并使用Java2D逐个像素地绘制出来,但是我找不到任何API调用来让Cairo渲染到一个缓冲区中(这很奇怪,因为这是我最基本的功能之一' d 期望得到这样的库的支持)。
我有什么办法可以做到这一点?我知道有 Java2D,但它相当基础。为此,我非常感谢一个更强大、更广泛、经过良好测试、高质量、免费 (LGPL) 的图形库。如果我能以某种方式让它与 SWING 一起工作,Cairo 会非常适合。
非常感谢您的建议。
【问题讨论】:
-
通常,您可以使用任何您想要的组件(例如 JPanel),然后调用
.getGraphics()来为该组件获取可渲染的Graphics对象。然后,您使用该Graphics对象进行渲染。你已经尝试了什么?您的问题没有说明您已经尝试过什么?您是否已经完成了教程 (download.oracle.com/javase/tutorial/2d/index.html)? -
@normalocity:我想使用 Cairo (cairographics.org) 来进行渲染,因为它比 Java2D API 更强大、更方便。 Cairo 的 Java 绑定 API 记录在此处:link 我只是无法将其渲染到 SWING 组件(例如 JPanel)或字节缓冲区中。在后一种情况下,我可能会绘制出 Cairo 使用 Java2D 创建的光栅化渲染。但我只是没有看到 API 公开任何“渲染到缓冲区”功能。
标签: java swing rendering jpanel cairo