`
xujunJ2EE
  • 浏览: 69720 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类
最新评论

用swing开发的地图导航和圆角Tooltip

阅读更多
    xiaozhonghua同学用TWaver实现了一个地图导航的控件,看了灰常喜欢,TWaver俺是买不起,就想自己用swing来实现一个玩玩,当然,和TWaver强大的功能是不能比,那可是号称10W个节点10秒就加载的,咱就喜欢它那个漂亮的样式,就画画界面。
    首先是可以加载背景地图,这个好办,用个bufferimage就可以了,然后是放大缩小移动,这里用了点心思,开始想的时候是根据缩放比例对bufferimage作整体缩放,然后根据JPanel的视图大小作块截取。后来发现,当图片比较大的时候,不断放大的化最终会内存溢出,咱就想了另外一个办法,底图大小不变,缩放实际上就是图片截取区域变化的过程。 放大:截取区域变小 缩小:截取区域变大,然后在放置到JPanel的视图上,不就OK了。其他的自适应屏幕等等的处理都是这样的。
    接着就是在背景图上放置热点,这里我对热点作了图层的分类,这也是仿照GIS的方式。每组热点可以有自己不同的渲染器,渲染器是可以自己扩展的。热点选中之后,我将原始的mouseClick事件作了封装,转成自定义的事件,这样就将选中的热点对象通过事件对象发布出去,方便使用者的调用。
    最后是那个好看的圆角tooltip,我的思路是用JLayerPanel,底层是负责绘制圆角的JPanel,然后上面是客户端传递过来的contextPanel,我负责将两者结合在一起,处理好定位问题,然后该透明的透明,就形成了一个圆角tooltip。还是那句话,swing只有你想不到的,没有你做不到的。需要注意的是,要根据热点的位置,tooltip的样式和定位是不同的,比如在右边界的热点,tooltip就要在热点的左边,这个同学们可以自己用用看。
    老规矩,代码继续公布,将map包替换我前面发布的项目中的map包就可以了。注意要先选择地图上面的工具栏才能选点,和GIS的操作方式类似。还有一些功能没有完善,比如拖动热点时,tooptip没有跟着移动,我后面会不断的完善的。




  • map.rar (18.5 KB)
  • 下载次数: 309
  • 大小: 115.3 KB
  • 大小: 121.7 KB
2
0
分享到:
评论
3 楼 zhjb_javaeye 2011-01-05  
xujunJ2EE 写道
xujun.control.XContorlUtil是在以前发布的那个项目中的,这个只是那个项目的一个控件而已,你可以查询我以前的帖子去下载


还缺少“XContorlUtil.DEFAULT_DOUBLE_FORMATER”属性。

2 楼 xujunJ2EE 2010-09-25  
xujun.control.XContorlUtil是在以前发布的那个项目中的,这个只是那个项目的一个控件而已,你可以查询我以前的帖子去下载
1 楼 itlangqun 2010-09-23  
缺少 xujun.control.XContorlUtil;请楼主附加。谢谢!!!

相关推荐

Global site tag (gtag.js) - Google Analytics