java连连看小游戏代码,简单的连连看小游戏

  java连连看小游戏代码,简单的连连看小游戏

  本文实例为大家分享了爪哇岛实现简易连连看小游戏的具体代码,供大家参考,具体内容如下

  新手上路,分享一下

  直接上代码

  包连连看导入javax。挥棒。*;导入Java。awt。*;导入Java。awt。事件。动作事件;导入Java。awt。事件。动作监听器;导入Java。awt。事件。窗口适配器;导入Java。awt。事件。窗口事件;导入Java。io。文件;导入Java。util。hashset导入Java。util。设置;导入Java。util。treeset公共类连连看扩展窗口实现可运行{私有JPanel panel_01,panel _ 02私弦先,芬纳尔;私人组件时间;私有布尔isClick=trueprivate int x1,y1,x2,y2;图标温度;JButton first button=new JButton();JButton second button=new JButton();public LinkGame(){ setTitle(连连看);setBounds(300,100,600,450);panel _ 01=new JPanel(new GridLayout(6,6));panel _ 02=new JPanel(new BorderLayout());close();右面板();左面板();add(panel_01,BorderLayout .中心);add(panel_02,BorderLayout .西);设置可见(真);setResizable(false);setDefaultCloseOperation(JFrame .DISPOSE _ ON _ CLOSE);//run();}//关闭应用询问private void close(){ addWindowListener(new window adapter(){ @ Override public void window closing(window event e){ int result=joptionpane。显示确认对话框(panel _ 01,’是否确认退出?, 确认,JOptionPane .OK_CANCEL_OPTION,JOptionPane .信息_消息);if(result==JOptionPane .OK _ OPTION){系统。退出(0);} } });} //左侧面板private void right panel(){ File img=new File( src/images );//打开图片文件夹string[]list=img。list();//获取文件中的图片名称并存入集合SetString s=new HashSet();//构建无序集合SetString S2=new TreeSet();布尔bol=false//把18个图片存入设置集合中以备生成界面for(int l=0;l18l){ s . add(list[l]);S2。add(list[l]);} for(int i=0,count=0;i6;I){ for(int j=0;j6;j){ String[]strs 01=s . to array(new String[0]);String[]strs 02=S2。to数组(新字符串[0]);if(count17){

                 count=0;                    bol=true;                }                JButton button=new JButton();//新建按钮                if(bol){                    ImageIcon imgs=new ImageIcon("src/images/"+strs02[count]);                    button.setIcon(imgs);                }else{                    ImageIcon imgs=new ImageIcon("src/images/"+strs01[count]);                    button.setIcon(imgs);                }                button.addActionListener(new click());//添加按钮的监听事件                panel_01.add(button);//把按钮添加到左面板                count++;            }        }    }    //有面板    private void leftPanel(){        ImageIcon icon=new ImageIcon("src/images/leftback.png");//连连看字        JLabel label=new JLabel(icon);        time=new JLabel("剩余时间30秒");//倒计时计时初始化        time.setFont(new Font("楷体",Font.PLAIN,20));//设置字体样式        panel_02.add(label,BorderLayout.NORTH);        panel_02.add(time,BorderLayout.SOUTH);    }    //倒计时方法    public void run() {        int  count=30;        while (count>=0) {            try {                time.setText("剩余时间"+count + "秒");                Thread.sleep(1000);   //暂停1秒                count--;            } catch (InterruptedException e) {                e.printStackTrace();            }            if(count==0){                JOptionPane.showMessageDialog(panel_01,"时间用完,已结束");                System.exit(0);            }        }    }    //按钮点击内部类    class click implements ActionListener{        ImageIcon img=new ImageIcon("src/images/Img319981730_null.jpg");//空白图片        @Override        public void actionPerformed(ActionEvent e) {            //获取点击按钮的行和列            if(isClick){                firstbutton=((JButton)e.getSource());                first=firstbutton.getIcon().toString();//获取点击图片名称                temp=firstbutton.getIcon();                x1=firstbutton.getLocation().x;//获取点击图片横纵坐标                y1=firstbutton.getLocation().y;                firstbutton.setIcon(img);//点击后图片设置为空白图片                isClick=false;            }else {                secondbutton=((JButton)e.getSource());                finnal=secondbutton.getIcon().toString();//获取第二次点击图片名称                x2=secondbutton.getLocation().x;//获取点击图片横纵坐标                y2=secondbutton.getLocation().y;                isClick=true;                win();//判断是否消除或者胜利方法            }        }        private void win(){            boolean bol=first.equals(finnal);//判断两次点击的图片名字是否相同            boolean bol2=!((x1==x2)&&(y1==y2));//判断位置是否不一样,防止点击两张相同的图片            if(bol&&bol2){                firstbutton.setIcon(img);                secondbutton.setIcon(img);                String str02="src/images/Img319981730_null.jpg";//把第二张图片改成空白图片                Component[] bts=panel_01.getComponents();//获取全部组件                int count=0;                for(int i=0;i<bts.length;i++){                    JButton btn=(JButton)bts[i];                    String str01=btn.getIcon().toString();                    if(str01.equals(str02)){//判断组件名称等于空白图片名称的个数                        count++;                        if(count==35){                            //如果到达全部图片则游戏胜利                            JOptionPane.showMessageDialog(panel_01,"你赢了");                            System.exit(0);                        }                    }                }            }else{                firstbutton.setIcon(temp);//设置第一张图片还原            }        }    }}然后创建主类运行即可

  

package linkgame;public class Play {    public static void main(String[] args) {        LinkGame linkGame=new LinkGame();    }}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持盛行IT。

 

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: