有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用SVG+Java实现灵活的信息显示,这是否可行?

我需要创建复杂电气系统的“模拟”显示。我可以在Visio中访问实时状态信息和系统框图

这是否可行的方法:

  1. 从系统框图创建SVG图形

  2. 使用SVG属性标记感兴趣的SVG元素

  3. 将SVG DOM加载到java中

  4. 找到标记的元件,并根据系统状态信息对其进行修改(例如,如果元件“处于报警状态”,则使其变为红色)

  5. 使用蜡染将SVG渲染为PNG以显示(使用swing组件:JSVGCanvas)

一个关键需求是在部署应用程序后修改SVG的灵活性。该应用程序能够根据SVG中的标记灵活地引入不同的“数据点”

有人成功地使用了类似的策略吗? 我应该期待什么陷阱? SVG编辑工具的发展方向是什么


共 (2) 个答案

  1. # 1 楼答案

    你也应该看看SVG Salamander,我自己没有用过,但有些功能是:

    • “SVG图形中所有命名形状的索引都很容易访问。”
    • “直接访问场景图树。您可以使用Java命令直接操作它。”
  2. # 2 楼答案

    我做了一些类似的健康状态显示。实际上,我对数据对象进行了注释,并让它们将其状态推送到一个哑SVG文件中,但机器应该大致相同,只是颠倒过来

    好处:

    • 使复杂的动态图表非常容易渲染
    • 与我使用过的所有其他工具相比,图表维护是一件轻而易举的事情
    • 能够通过SVG直接定位web应用程序,或者通过服务器提供的图像间接定位web应用程序

    陷阱:

    • 数据绑定可能会很痛苦,这取决于您希望可视化的复杂程度。如果您想对SVG进行注释以将数据拉入自身,那么这可能是最困难的部分
    • 您需要很好地掌握XPath才能做任何事情,哪怕是稍微有点棘手的事情。调试XPath表达式从来都不难,但往往很乏味

    编辑: Inkscape。还有一些其他的矢量图形编辑器可以直接或作为导出目标来处理SVG,但我所见过的这些编辑器中没有一个接近Inkscape。它不支持当前SVG规范中的所有功能,但听起来它已经足够满足大多数(如果不是全部)需求。当您需要SVG不支持的内容时,不需要手动编辑SVG文件也是一个不错的选择