最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java實(shí)現(xiàn)簡(jiǎn)易連連看小游戲

 更新時(shí)間:2022年05月09日 14:59:28   作者:Aromatic tree  
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)簡(jiǎn)易連連看小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了java實(shí)現(xiàn)簡(jiǎn)易連連看小游戲的具體代碼,供大家參考,具體內(nèi)容如下

新手上路,分享一下

直接上代碼

package linkgame;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;
import java.util.HashSet;
import java.util.Set;
import java.util.TreeSet;

public class LinkGame extends JFrame implements Runnable{
? ? private JPanel panel_01,panel_02;
? ? private String first,finnal;
? ? private JLabel time;
? ? private boolean isClick=true;
? ? private int x1,y1,x2,y2;
? ? Icon temp;
? ? JButton firstbutton=new JButton();
? ? JButton secondbutton=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();
? ? ? ? rightPanel();
? ? ? ? leftPanel();
? ? ? ? add(panel_01,BorderLayout.CENTER);
? ? ? ? add(panel_02,BorderLayout.WEST);
? ? ? ? setVisible(true);
? ? ? ? setResizable(false);
? ? ? ? setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
? ? ? ? //run();
? ? }

//關(guān)閉應(yīng)用詢問(wèn)
? ? private void close(){
? ? ? ? addWindowListener(new WindowAdapter() {
? ? ? ? ? ? @Override
? ? ? ? ? ? public void windowClosing(WindowEvent e) {
? ? ? ? ? ? ? ? int result = JOptionPane.showConfirmDialog(panel_01, "是否確認(rèn)退出?", "確認(rèn)",
? ? ? ? ? ? ? ? ? ? ? ? JOptionPane.OK_CANCEL_OPTION, JOptionPane.INFORMATION_MESSAGE);
? ? ? ? ? ? ? ? if(result == JOptionPane.OK_OPTION){
? ? ? ? ? ? ? ? ? ? System.exit(0);
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? });
? ? }

? ? //左側(cè)面板
? ? private void rightPanel(){
? ? ? ? File img=new File("src/images");//打開(kāi)圖片文件夾
? ? ? ? String[] list=img.list();//獲取文件中的圖片名稱并存入集合
? ? ? ? Set<String> s=new HashSet<>();//構(gòu)建無(wú)序集合
? ? ? ? Set<String> s2=new TreeSet<>();
? ? ? ? boolean bol=false;
? ? ? ? //把18個(gè)圖片存入set集合中以備生成界面
? ? ? ? for(int l=0;l<18;l++){
? ? ? ? ? ? s.add(list[l]);
? ? ? ? ? ? s2.add(list[l]);
? ? ? ? }
? ? ? ? for(int i=0,count=0;i<6;i++){
? ? ? ? ? ? for(int j=0;j<6;j++){
? ? ? ? ? ? ? ? String[] strs01=s.toArray(new String[0]);
? ? ? ? ? ? ? ? String[] strs02=s2.toArray(new String[0]);
? ? ? ? ? ? ? ? if(count>17){
? ? ? ? ? ? ? ? ? ? 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());//添加按鈕的監(jiān)聽(tīng)事件
? ? ? ? ? ? ? ? panel_01.add(button);//把按鈕添加到左面板
? ? ? ? ? ? ? ? count++;
? ? ? ? ? ? }
? ? ? ? }
? ? }
? ? //有面板
? ? private void leftPanel(){
? ? ? ? ImageIcon icon=new ImageIcon("src/images/leftback.png");//連連看字
? ? ? ? JLabel label=new JLabel(icon);
? ? ? ? time=new JLabel("剩余時(shí)間30秒");//倒計(jì)時(shí)計(jì)時(shí)初始化
? ? ? ? time.setFont(new Font("楷體",Font.PLAIN,20));//設(shè)置字體樣式
? ? ? ? panel_02.add(label,BorderLayout.NORTH);
? ? ? ? panel_02.add(time,BorderLayout.SOUTH);
? ? }
? ? //倒計(jì)時(shí)方法
? ? public void run() {
? ? ? ? int ?count=30;
? ? ? ? while (count>=0) {
? ? ? ? ? ? try {
? ? ? ? ? ? ? ? time.setText("剩余時(shí)間"+count + "秒");
? ? ? ? ? ? ? ? Thread.sleep(1000); ? //暫停1秒
? ? ? ? ? ? ? ? count--;
? ? ? ? ? ? } catch (InterruptedException e) {
? ? ? ? ? ? ? ? e.printStackTrace();
? ? ? ? ? ? }
? ? ? ? ? ? if(count==0){
? ? ? ? ? ? ? ? JOptionPane.showMessageDialog(panel_01,"時(shí)間用完,已結(jié)束");
? ? ? ? ? ? ? ? System.exit(0);
? ? ? ? ? ? }
? ? ? ? }


? ? }
? ? //按鈕點(diǎn)擊內(nèi)部類
? ? class click implements ActionListener{

? ? ? ? ImageIcon img=new ImageIcon("src/images/Img319981730_null.jpg");//空白圖片
? ? ? ? @Override
? ? ? ? public void actionPerformed(ActionEvent e) {
? ? ? ? ? ? //獲取點(diǎn)擊按鈕的行和列
? ? ? ? ? ? if(isClick){
? ? ? ? ? ? ? ? firstbutton=((JButton)e.getSource());
? ? ? ? ? ? ? ? first=firstbutton.getIcon().toString();//獲取點(diǎn)擊圖片名稱
? ? ? ? ? ? ? ? temp=firstbutton.getIcon();
? ? ? ? ? ? ? ? x1=firstbutton.getLocation().x;//獲取點(diǎn)擊圖片橫縱坐標(biāo)
? ? ? ? ? ? ? ? y1=firstbutton.getLocation().y;
? ? ? ? ? ? ? ? firstbutton.setIcon(img);//點(diǎn)擊后圖片設(shè)置為空白圖片
? ? ? ? ? ? ? ? isClick=false;
? ? ? ? ? ? }else {
? ? ? ? ? ? ? ? secondbutton=((JButton)e.getSource());
? ? ? ? ? ? ? ? finnal=secondbutton.getIcon().toString();//獲取第二次點(diǎn)擊圖片名稱
? ? ? ? ? ? ? ? x2=secondbutton.getLocation().x;//獲取點(diǎn)擊圖片橫縱坐標(biāo)
? ? ? ? ? ? ? ? y2=secondbutton.getLocation().y;
? ? ? ? ? ? ? ? isClick=true;
? ? ? ? ? ? ? ? win();//判斷是否消除或者勝利方法
? ? ? ? ? ? }
? ? ? ? }

? ? ? ? private void win(){
? ? ? ? ? ? boolean bol=first.equals(finnal);//判斷兩次點(diǎn)擊的圖片名字是否相同
? ? ? ? ? ? boolean bol2=!((x1==x2)&&(y1==y2));//判斷位置是否不一樣,防止點(diǎn)擊兩張相同的圖片
? ? ? ? ? ? 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)){//判斷組件名稱等于空白圖片名稱的個(gè)數(shù)
? ? ? ? ? ? ? ? ? ? ? ? count++;
? ? ? ? ? ? ? ? ? ? ? ? if(count==35){
? ? ? ? ? ? ? ? ? ? ? ? ? ? //如果到達(dá)全部圖片則游戲勝利
? ? ? ? ? ? ? ? ? ? ? ? ? ? JOptionPane.showMessageDialog(panel_01,"你贏了");
? ? ? ? ? ? ? ? ? ? ? ? ? ? System.exit(0);
? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }else{
? ? ? ? ? ? ? ? firstbutton.setIcon(temp);//設(shè)置第一張圖片還原
? ? ? ? ? ? }
? ? ? ? }

? ? }
}

然后創(chuàng)建主類運(yùn)行即可

package linkgame;

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

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java中關(guān)于String的全面解析

    Java中關(guān)于String的全面解析

    這篇文章主要介紹了Java中關(guān)于String全面解析,下面我們來(lái)一起學(xué)習(xí)一下吧
    2019-05-05
  • 詳解如何獲取java中類的所有對(duì)象實(shí)例

    詳解如何獲取java中類的所有對(duì)象實(shí)例

    如何在運(yùn)行時(shí)獲取一個(gè)Java類的所有對(duì)象實(shí)例呢,本文給大家介紹一種底層實(shí)現(xiàn)的方式,基于jvmti,代碼用C++實(shí)現(xiàn),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-10-10
  • 深入了解SparkSQL的運(yùn)用及方法

    深入了解SparkSQL的運(yùn)用及方法

    SparkSQL就是將SQL轉(zhuǎn)換成一個(gè)任務(wù),提交到集群上運(yùn)行,類似于Hive的執(zhí)行方式。本文給大家分享了SparkSQl的運(yùn)用及方法,感興趣的朋友跟隨小編一起看看吧
    2022-03-03
  • 解析Nacos的API居然存在這么嚴(yán)重的漏洞

    解析Nacos的API居然存在這么嚴(yán)重的漏洞

    這篇文章主要介紹了Nacos的API居然存在這么嚴(yán)重的漏洞,Nacos為我們提供了大量API,但是這些API默認(rèn)是沒(méi)有開(kāi)啟認(rèn)證的,直接可以訪問(wèn),針對(duì)于這一點(diǎn)我們也都可以去驗(yàn)證一下,本文給大家詳細(xì)講解,感興趣的朋友跟隨小編一起看看吧
    2022-09-09
  • Java實(shí)現(xiàn)將PDF轉(zhuǎn)為PDF/A

    Java實(shí)現(xiàn)將PDF轉(zhuǎn)為PDF/A

    通過(guò)將PDF格式轉(zhuǎn)換為PDF/A格式,可保護(hù)文檔布局、格式、字體、大小等不受更改,從而實(shí)現(xiàn)文檔安全保護(hù)的目的,同時(shí)又能保證文檔可讀、可訪問(wèn)。本文將為大家介紹如何實(shí)現(xiàn)這一轉(zhuǎn)換,需要的可以參考一下
    2022-01-01
  • Java基礎(chǔ)之集合Set詳解

    Java基礎(chǔ)之集合Set詳解

    這篇文章主要介紹了Java基礎(chǔ)之集合Set詳解,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java基礎(chǔ)的小伙伴們有很好地幫助,需要的朋友可以參考下
    2021-05-05
  • spring為類的靜態(tài)屬性實(shí)現(xiàn)注入實(shí)例方法

    spring為類的靜態(tài)屬性實(shí)現(xiàn)注入實(shí)例方法

    在本篇文章里小編給大家整理的是關(guān)于spring為類的靜態(tài)屬性實(shí)現(xiàn)注入實(shí)例方法,有需要的朋友們可以參考下。
    2019-10-10
  • Java使用pulsar-flink-connector讀取pulsar catalog元數(shù)據(jù)代碼剖析

    Java使用pulsar-flink-connector讀取pulsar catalog元數(shù)據(jù)代碼剖析

    這篇文章主要介紹了Java使用pulsar-flink-connector讀取pulsar catalog元數(shù)據(jù)代碼剖析,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-08-08
  • Java接入支付寶授權(quán)第三方登錄的完整步驟

    Java接入支付寶授權(quán)第三方登錄的完整步驟

    不管是支付寶支付,還是微信支付,還是銀聯(lián)支付等,大部分的支付流程都是相似的,這篇文章主要給大家介紹了關(guān)于Java接入支付寶授權(quán)第三方登錄的相關(guān)資料,使用支付寶的沙盒環(huán)境示例,需要的朋友可以參考下
    2021-07-07
  • java 數(shù)組轉(zhuǎn)list的兩種方式

    java 數(shù)組轉(zhuǎn)list的兩種方式

    這篇文章主要介紹了java 數(shù)組轉(zhuǎn)list的兩種方式,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2020-10-10

最新評(píng)論

岳西县| 乌拉特中旗| 新兴县| 合水县| 东安县| 华安县| 湖口县| 黔西县| 准格尔旗| 宜君县| 吴江市| 娄烦县| 宿州市| 宁武县| 靖宇县| 丹阳市| 金溪县| 临颍县| 河南省| 乐山市| 隆回县| 诏安县| 临沭县| 嘉兴市| 黑河市| 浑源县| 竹溪县| 双桥区| 宁德市| 抚远县| 扶绥县| 全南县| 中卫市| 商城县| 阿拉善右旗| 蒙城县| 新和县| 贵港市| 右玉县| 电白县| 富锦市|