(我是初学者)自己封装组件
随着学习的深入,开始接触容器,开始使用JFrame,JLable等等来显示相应的内容。但是每次需要的时候,就要设置相应组件的大小位置,并添加到JFrame中,相关代码需要重复写,所以为了方便,就会自己写个带参数的构造器,这样需要添加的时候,就只需要new一下,把相关的参数填一下就可以了,这是最开始的封装。
比如:
1 /** 2 * 按钮80*20 3 * @param str 按钮名 4 * @param x x坐标 5 * @param y y坐标 6 * @param con 容器 7 */ 8 public MyButton(String str,int x,int y,Container con){ 9 this.setText(str); 10 this.setBounds(x, y, 80, 20); 11 con.add(this); 12 }
这是一个按钮的构造器,实现了9-11行代码的重用,同时文本注释也让我们了解到了该按钮的大小,所需参数的内容。当然这只是最简单的一个封装。
这周的联系有一个是让我们做一个坦克游戏(很老的一个游戏)的地图界面,而且是根据文本里的内容,来提取相应的图片添加到JFame中生成,并且要求尽量把相关组件封装起来。
地图中有5中地形图片,文档中分别用1-5表示,所以先想到的是用Map集合来实现:
public class Photo extends JLabel{ private static Map<String, String> map=new HashMap<String, String>(); static{ map.put("1", "tankMap/草.jpg"); map.put("2", "tankMap/河流.jpg"); map.put("3", "tankMap/空地.jpg"); map.put("4", "tankMap/墙.jpg"); map.put("5", "tankMap/砖.jpg"); } /** * 图片 * 100*100 * @param key 文本读取数字 * @param x x坐标 * @param y y左边 * @param con 容器 */ public Photo(String key,int x,int y,Container con){ Image im=new ImageIcon(map.get(key)).getImage(); im=im.getScaledInstance(100, 100, 1); this.setIcon(new ImageIcon(im));; this.setBounds(x, y, 100, 100); con.add(this); } }
这样封装起来后,只需要new Photo(),填入相关的参数,就由电脑自动生成了相应的图片。
浙公网安备 33010602011771号