(我是初学者)自己封装组件

随着学习的深入,开始接触容器,开始使用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(),填入相关的参数,就由电脑自动生成了相应的图片。

posted @ 2017-05-07 19:28  流星逝  阅读(401)  评论(0)    收藏  举报