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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。