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没有跟着移动,我后面会不断的完善的。
- 大小: 115.3 KB
- 大小: 121.7 KB
分享到:
相关推荐
echarts自作地图高亮显示散点图 tooltip自定义内容。
OpenLayers地图要素tooltip[文字提示],对要素进行动态提示
锁定界面和使用ToolTip创建提示,解锁界面的默认密码是1234,当鼠标移到确定按钮或这是第一个文本框时,出现提示。
微信小程序-ToolTip信息提示组件导入将ToolTip文件夹复制到pages文件夹内使用在需要使用ToolTip的页面对应的.wxml文件中添加: src="../ToolTip/toolTip.wxml"/> <!-- 引入toolTip模板 --> is=...
ECHARTS3D 地球,解决TOOLTOP不显示问题.使用CSS自定义tooltip样式,完美显示。
MaskedTextBox和toolTip 一起使用; 验证格式是否符合,不符合就toolTip提示
一个简单的Tooltip类 方便在控件中添加
js-css-tooltip是一款使用js和css3制作的tooltip工具提示插件。该tooltip插件显示时带css3动画特效,并且会自动根据元素所在的位置来定位工具提示的位置。
DataGrid实现tooltip功能DataGrid实现tooltip功能.txtDataGrid实现tooltip功能.txtDataGrid实现tooltip功能.txtDataGrid实现tooltip功能.txtDataGrid实现tooltip功能.txt
比较好的tooltip比较好的tooltip比较好的tooltip比较好的tooltip比较好的tooltip比较好的tooltip比较好的tooltip比较好的tooltip
在这个windows 32源代码中使用Windows api演示了工具提示ToolTip控件的具体使用步骤和方法,剖析原理,清晰明了,对学习使用MFC ToolTip也有帮助。
在sle控件及数据窗口字段上实现tooltip提示
tooltip效果
一个ajax的tooltip例子,一个ajax的tooltip例子
这是一个在WPF中修改任何控件的Tooltip的样式的源代码,供大家参考获得自己想要的功能
介绍C#使用GDI+重绘工具提示控件ToolTip,实现ToolTip自定义图标、大图标、小图标和透明显示,并可以轻松的更换ToolTip背景和边框颜色
jquery tooltip jquery tooltip jquery tooltip
Swing之JTable用法
提示框程序,Everyone knows the ToolTip control (the programmer ones!!) which are included in the Common Controls version 4.0 since Win95 (that’s what saw first, I haven't ever caught the Win3.11). ...