亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

java實現簡單美女拼圖游戲

2019-11-26 15:14:12
字體:
來源:轉載
供稿:網友

拼圖小游戲,學習階段。很多不足,改進了一下

演示圖片:

J_Puzzle.java

import java.awt.BorderLayout;import java.awt.Component;import java.awt.Container;import java.awt.Dimension;import java.awt.Font;import java.awt.Graphics;import java.awt.GridBagConstraints;import java.awt.GridBagLayout;import java.awt.Image;import java.awt.Point;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.Toolkit;import java.io.File;import java.io.IOException;import java.util.Random; import javax.imageio.ImageIO;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.KeyStroke;class J_JPanel extends JPanel{    /**   *    */  private static final long serialVersionUID = 1L;  Image m_image;  int showpicture=0;  @SuppressWarnings("static-access")  public J_JPanel()throws IOException  {      J_Puzzle a = new J_Puzzle();    if(a.changetime==-1)      showpicture = 1;      File f = new File("樣圖"+showpicture+".jpg");      m_image = ImageIO.read(f);     }  public void paintComponent(Graphics g)  {          g.drawImage(m_image, 0, 0, 360, 360, this);  } }public class J_Puzzle extends JFrame implements ActionListener{   /**   *    */  private static final long serialVersionUID = 1L;  int i,j;  static int changetime = 0;  Container c = getContentPane();  JButton b[] = new JButton[16];  ImageIcon ic[][] = new ImageIcon[2][15];  public J_Puzzle() throws IOException  {           super("拼圖小游戲");         String pic_name[] = new String[15];    for(i = 0;i < 2;i ++)     for(j = 0;j < 15;j ++)      {       pic_name[j] = String.valueOf(j+1+i*15)+".jpg";       ic[i][j] = new ImageIcon(pic_name[j]);      }    JMenuBar mBar = new JMenuBar();    setJMenuBar(mBar);         int k = 0;        JMenu []m = {new JMenu("菜單(M)"),new JMenu("幫助(H)")};    char mC[][] = {{'M','H'},{'S','X','C','Z'},{'E','T'}};    JMenuItem mItem[][] = {{new JMenuItem("開始(S)"),new JMenuItem("重置(X)"),new JMenuItem("背景更換(C)"),new JMenuItem("退出(Z)")},{new JMenuItem("查看樣圖(E)"),new JMenuItem("關于(T)")}};    for(i = 0;i < 2;i ++)     {      mBar.add(m[i]);      m[i].setMnemonic(mC[0][i]);      if(i==0)k = 0;      else k = 1;      for(j = 0;j < 4-i-k;j ++)      {         m[i].add(mItem[i][j]);        mItem[i][j].setMnemonic(mC[i+1][j]);        mItem[i][j].setAccelerator(KeyStroke.getKeyStroke("ctrl"+mC[i+1][j]));        mItem[i][j].addActionListener(new ActionListener(){           public void actionPerformed(ActionEvent e)          {              JMenuItem mItem = (JMenuItem)e.getSource();            if(mItem.getText().equalsIgnoreCase("重置(X)")||mItem.getText().equalsIgnoreCase("開始(S)"))             {                           int location[][] = {{17,13},{17,103},{17,193},{17,283},{107,13},{107,103},{107,193},{107,283}                   ,{197,13},{197,103},{197,193},{197,283},{287,13},{287,103},{287,193},{287,283}};            int rd_number[] = new int[16];                     rd_number = randomnumber();            for(i = 1;i < 16;i ++)              b[i].setLocation(location[rd_number[i-1]-1][0],location[rd_number[i-1]-1][1]);             }            else if(mItem.getText().equalsIgnoreCase("背景更換(C)"))            {                             changetime++;              for(i = 0;i < 15;i ++)                {                b[i+1].setIcon(null);                                b[i+1].setIcon(ic[changetime][i]);                }              if(changetime==1)                changetime = -1;            }            else if(mItem.getText().equalsIgnoreCase("退出(Z)"))            {              int a = JOptionPane.showConfirmDialog(null, "您確定退出游戲?");              if(a==0)                System.exit(0);            }            else if(mItem.getText().equalsIgnoreCase("查看樣圖(E)"))            {                               JFrame jj = new JFrame("樣圖");                jj.setSize(360, 360);                jj.setLocation(Toolkit.getDefaultToolkit().getScreenSize().width/3-360,                     Toolkit.getDefaultToolkit().getScreenSize().height/4);                jj.setVisible(true);                Container c1 = jj.getContentPane();                                 try {                  c1.add(new J_JPanel(),BorderLayout.CENTER);                }                catch (IOException e1) {                  // TODO Auto-generated catch block                  e1.printStackTrace();                }            }            if(mItem.getText().equalsIgnoreCase("關于(T)"))            {              JOptionPane.showMessageDialog(null, "簡單拼圖小游戲/n制作人:菜鳥");            }                     }                     });      }           }    m[0].insertSeparator(1);m[1].insertSeparator(1);           GridBagLayout gr = new GridBagLayout();    c.setLayout(gr);         int gx[] = {0,1,2,3};    int gy[] = {0,1,2,3};    int k1;    Dimension d = new Dimension(90,90);    String s_number;    GridBagConstraints gc = new GridBagConstraints();    for(i = 1;i < 5;i ++)     {      if(i==4)k1=4;      else k1=5;      for(j = 1;j < k1;j ++)       {        gc.gridx = gx[j-1];        gc.gridy = gy[i-1];        gc.fill = GridBagConstraints.NONE;        s_number = String.valueOf(j+(i-1)*4);        b[j+(i-1)*4] = new JButton(s_number,ic[0][j+(i-1)*4-1]);        b[j+(i-1)*4].setPreferredSize(d);        b[j+(i-1)*4].setFont(new Font("宋體",Font.PLAIN,0));        gr.setConstraints(b[j+(i-1)*4],gc);          c.add(b[j+(i-1)*4]);              }     }        for(i = 1;i <16;i ++)       b[i].addActionListener(this);               }    public void actionPerformed(ActionEvent e)   {      int j;      JButton b = (JButton)e.getSource();           Point p = b.getLocation();       Point p1 = null;        for(j = -1;j < 2;j ++)        {                     if(p.y+j*90>283||p.y+j*90<13)            continue;          else          {             Component a = c.getComponentAt(p.x, p.y+j*90);            if(a.getHeight()!=90)              p1 = new Point(p.x,p.y+j*90);          }           }        for(j = -1;j < 2;j ++)        {             if(p.x+j*90>287||p.x+j*90<17)            continue;                             else          {            Component a = c.getComponentAt(p.x+j*90, p.y);            if(a.getHeight()!=90)                       p1 = new Point(p.x+j*90,p.y);           }                }        if(p1!=null)        b.setLocation(p1.x, p1.y);       if(check()==true)         JOptionPane.showMessageDialog(null, "恭喜您成功了");   }/*產生隨機數*/  public int[] randomnumber()  {     Random rd = new Random();      int n[] = new int[15];     for(int i = 0 ;i < 15;i ++)      {         int temp = rd.nextInt(15)+1;        n[i] = temp;        for(int j = 0;j < i;j ++)          if(n[j]==temp)          {                    i--;            break;          }                   }    return n;  }  /*判斷是否排序成功*/  public boolean check()  {     Point location[] = new Point[16];     boolean bo = false;     int count=0;     for(int i = 0;i < 4;i ++)       for(int j = 0;j < 4;j ++)        location[i*4+j] = new Point(17+j*90, 13+i*90);          for(int i = 0;i < 15;i ++)     {       if(b[i+1].getLocation().x==location[i].x&&b[i+1].getLocation().y==location[i].y)         count++;       if(count==15)         bo=true;     }        return bo;   }     public static void main(String args[]) throws IOException  {    J_Puzzle app = new J_Puzzle();    app.setDefaultCloseOperation(EXIT_ON_CLOSE);    app.setLocation(Toolkit.getDefaultToolkit().getScreenSize().width/3, Toolkit.getDefaultToolkit().getScreenSize().height/4);    app.setSize(400,440);    app.setVisible(true);    app.setResizable(false);   }}

以上所述就是本文的全部內容了,希望對大家學習java能夠有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩成人中文字幕在线观看| 91精品久久久久| 亚洲xxxx18| 国产视频福利一区| 777777777亚洲妇女| 爱福利视频一区| 一区二区欧美亚洲| 国产福利视频一区二区| xxxxx成人.com| 中文字幕精品视频| 正在播放欧美一区| 国产精品电影网| www.亚洲免费视频| 国产精品96久久久久久又黄又硬| 国内揄拍国内精品少妇国语| 亚洲欧美在线磁力| 国产精品亚洲аv天堂网| 一区二区三区亚洲| www.日韩视频| 久久国产精品99国产精| 亚洲精品永久免费| 中文字幕亚洲综合| 国产在线精品播放| 国产精品日韩电影| 午夜精品视频在线| 国产婷婷色综合av蜜臀av| 久久精品免费电影| 亚洲精品久久久久久久久久久久| 亚洲夜晚福利在线观看| 亚洲欧美在线免费观看| 久久精品一本久久99精品| 欧美一级成年大片在线观看| 国产精品丝袜一区二区三区| 亚洲精品美女免费| 97精品国产97久久久久久| 欧美日韩高清区| 国产精品色视频| 一区二区三区四区在线观看视频| 亚洲一区亚洲二区| 日韩av电影手机在线观看| 亚洲国产精品资源| 欧美在线影院在线视频| 国产美女精品视频免费观看| 国内精品伊人久久| 欧美在线视频a| 日韩av一区在线| 中文字幕精品www乱入免费视频| 91超碰中文字幕久久精品| 俺去了亚洲欧美日韩| 欧美日韩久久久久| 91在线高清免费观看| 精品国内自产拍在线观看| 一区二区三区精品99久久| 91免费高清视频| 久青草国产97香蕉在线视频| 亚洲在线观看视频| 欧美性视频精品| 欧美精品久久久久久久| 精品久久久久久亚洲国产300| 国产精品自拍小视频| 懂色av影视一区二区三区| 精品福利在线视频| 4k岛国日韩精品**专区| 成人黄色片在线| 日韩欧美中文免费| 久久久久免费精品国产| 精品福利视频导航| 亚洲一区二区三区四区在线播放| 岛国精品视频在线播放| 欧美高清视频在线播放| 亚洲精品99久久久久中文字幕| 色小说视频一区| 日韩高清中文字幕| 亚洲欧美日韩国产成人| 亚洲一区二区三区四区视频| 国内精品久久久久久久| 久久久国产一区二区三区| 91精品国产综合久久香蕉的用户体验| 欧美日韩精品在线视频| 亚洲国产日韩欧美在线图片| 免费91麻豆精品国产自产在线观看| 国色天香2019中文字幕在线观看| 亚洲女人被黑人巨大进入al| 久久久久久久影院| 亚洲免费一级电影| 国产成+人+综合+亚洲欧洲| 国产精品一区二区三区成人| 69视频在线免费观看| 久久中文字幕国产| 亚洲偷欧美偷国内偷| 日韩电影中文字幕在线| 亚洲人成在线电影| 狠狠躁夜夜躁久久躁别揉| 亚洲无av在线中文字幕| 91精品国产91久久久久久吃药| 亚洲免费成人av电影| 亚洲成人教育av| 国模精品系列视频| 亚洲美女喷白浆| 久久综合伊人77777蜜臀| 久久久免费高清电视剧观看| 国产精品久久久久久久久久ktv| 国产精品人成电影在线观看| 国产丝袜一区二区| 国产福利视频一区二区| 一区二区三区视频免费| 久久精品视频在线观看| 91在线观看免费| 91久久精品国产| 国产亚洲人成a一在线v站| 日韩国产精品视频| 欧美日韩亚洲精品内裤| 亚洲嫩模很污视频| 亚洲精品美女网站| 欧美色视频日本高清在线观看| 国产精品视频一| 精品国产乱码久久久久酒店| 日韩在线欧美在线国产在线| 国产一区二区三区三区在线观看| 欧洲亚洲免费在线| 日韩a**站在线观看| 欧美日韩一区二区三区在线免费观看| 18一19gay欧美视频网站| 久久夜色撩人精品| 色综合久久精品亚洲国产| 欧美成在线观看| 97av在线播放| 日韩一区二区三区国产| 日韩av免费网站| www.美女亚洲精品| 国产伦精品一区二区三区精品视频| 久久成人在线视频| 欧美日韩xxx| 免费av一区二区| 亚洲最大的av网站| 欧美一级淫片丝袜脚交| 欧美日韩国产在线| 中国日韩欧美久久久久久久久| 国产网站欧美日韩免费精品在线观看| 国产ts人妖一区二区三区| 亚洲国产欧美一区二区丝袜黑人| 精品久久香蕉国产线看观看亚洲| 日韩av成人在线| 91精品国产免费久久久久久| 琪琪亚洲精品午夜在线| 欧美老女人在线视频| 日韩视频免费在线| 亚洲精品v天堂中文字幕| 国语对白做受69| 久久久精品久久久久| 久久精品电影网站| 精品国产乱码久久久久久天美| 国产精品久久视频| 欧亚精品在线观看| 一道本无吗dⅴd在线播放一区| 岛国视频午夜一区免费在线观看| 亚洲bt欧美bt日本bt| 中文字幕亚洲情99在线| 欧美高清视频在线| 欧美高清不卡在线| 久久精品国产亚洲| 欧美大学生性色视频| 国产精品一区二区性色av| 超碰91人人草人人干|