4

我想构建一个桌面应用程序 - 一个地图查看器,类似这样:http://sunsite.ubc.ca/UBCMap/在 Java 中。每当有人将鼠标悬停在地图上的建筑物上时,应该有一个气球工具提示在地图上说明该建筑物的一些信息,例如它的办公室电话号码等,并且该建筑物应该在二维地图中发光。有人可以为我提供一些关于我应该在 Java 中使用什么框架来构建这样的东西(例如 JavaFx)的指导吗?是否有任何类似的示例代码?

4

4 回答 4

2

如果你真的只有一张图片并且你想要工具提示,这里有一个 30 秒的描述。

  • 子类 JPanel
  • 覆盖paint()方法来绘制图像
  • 将一些形状对象(多边形、矩形等)定义为您的“建筑物”以及文本工具提示字符串
  • 覆盖 JPanel 子类中的 getTooltip。在每次调用中迭代您的 Shape 对象,测试该点是否在 shape 内部(shape 有一个方法)。返回适用于 Shape 的工具提示,如果您的鼠标没有超出形状,则返回 null
  • 如果您想要翻转效果,请注册 MouseMotionListener 并使用它来查找“悬停”形状。调用 repaint() 并以某种特殊方式渲染您的“悬停”。
  • 繁荣!你完成了

提示:您很可能需要使用 TooltipManager 注册您的 JPanel。

于 2009-08-28T16:06:35.910 回答
1

如果您的地图确实与您链接的示例一样简单,我强烈建议您避免使用 java(或完全使用 javaFX)。您可以使用任何 javascript DHTML 映射 api 做您想做的事。看

  • 谷歌地图 API
  • 开放层

Java 太过分了。小程序加载缓慢且难以在多种环境下正确部署。最好发布一个 KML 文件(或类似文件)并利用其他人的地图,而不是自己编写和维护整个应用程序。

于 2009-08-26T17:16:26.063 回答
0

JavaFX 是此类应用程序的合适候选者。JavaFX 脚本语法需要一点时间来适应,但是一旦您掌握了速度,就很容易创建图形/GUI 组件。

此外,您可以连接到可能对您的应用程序有用的现有 Java API 和 Web 服务。

在此处此处查看与您描述的应用类似的应用。(对于 Javafx 地图也是谷歌)

关于 JavaFX 的一个警告是它仍处于其生命的早期阶段 - 因此预计会遇到错误并被警告在以后的版本中可能会破坏更改。

于 2009-08-17T12:29:04.483 回答
0

看看JxMaps产品。它提供了将交互式地图添加到 Java 桌面应用程序的功能。

于 2016-06-08T06:33:11.290 回答