前言:哎,上次因为弄到凌晨4点快了,自己又超级困了,就没怎么仔细弄,关于这个地图显示还是有很多问题的,比如当你缩放窗口的时候,那些图片之间(也就是JLabel的jlMap)之间会出现空隙 ,怎样才能解决这个问题呢?其实方法有很多,比如设定每个JLabel的Border(其实只是想想而已,没实践过),不过我是给这个jpIcon设定一个布局,为GridLayout设定参数,把JLabel之间的空隙设定为零,当然它分上下和左右,只要这样设置一下后,这个jpIcon内部的JLabel就会乖乖得靠紧了,嘿嘿。还有就是EAST方向上的按钮肯定是大胖子一样,恢复不到按钮本来的大小,这是因为GirdLayout内部只管把控件拉伸填满,所以这次再给个还原控件本身大小的改进方案,不过和塞图片到CENTER方位的方法大同小异,都是再添加层中间容器JPanel,然后对其采用FlowLayout布局就OK拉~嘿嘿,哇,已经加了好多的JPanel了,头有点晕晕的。这次只做一个简单的补充和改进,下次再动大手脚。
这里给出对大框架的BorderLayout中的CENTER区域中的jpIcon的布局做修改,使得其内部的JLabel都没有空隙:
e.g. :







构造jpIcon的时候就是用了GridLayout布局,前面两个是高和宽,后面两个参数分别是上下和左右组件之间的空隙。
接下来是对EAST方位的组件大小问题的改进了,大致思路前言里面也已经说了,所以这里就直接给出代码了。
e.g. :





















这里又声明了一个新的JPanel:jpEastEo,里面是真正放按钮啊文本区域的容器,而且一个里面只放一个控件(有点浪费啊,只调用一次add)。由于add进去的是对象实例(纯粹个人理解,有误之处请大家更正),而不是reference,所以这个jpEastCo可以重复使用,而且放入后修改指向也不会使得上次add进去的东西改变掉。注意前面对jpEast的布局中采用GridLayout(0,1),其中的0代表可以有任意列,1代表只有一行。前面参数设置列,后面的参数设置行。
这样应该比较好了已经,上次遗留下来的两个BUG算是基本解除了,接下来要着手地图文件的格式问题了,也就是用什么来保存地形的信息了。首先用数字肯定不行,除非地形少于两位数,也就是所最多只有10个地形,那么可以用阿拉伯数字表示地形。如果有超过10个以上的地形,那么读取地形文件的时候对124这个一块的数据分别不出到底是代表1号2号4号地形还是1号24号地形或者是种种种种,地形绝对不能存在这种不确定性。可以自己想想有什么办法哟~嘿嘿,有好的方法可以推荐哟~我也是临时想的那,呵呵。(考虑一个比较经济环保的方法,提示一下:最优二叉树!嘿嘿,然后直接保存成二进制文件,地图文件又小人家又难以编辑研究——没有你的地图编辑器可不行,呃,这个是吧,就是还要编个数据结构……嘿嘿,以后慢慢捣鼓吧)。