亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? applet1.java

?? 一個java applet小游戲
?? JAVA
字號:
package pintugame4;

import java.awt.*;
import java.awt.event.*;
import java.applet.*;

import java.io.*;
import javax.swing.*;

/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2004</p>
 * <p>Company: </p>
 * @author not attributable
 * @version 1.0
 */

public class Applet1 extends Applet implements KeyListener, Runnable, MouseListener {
  private boolean isStandalone = false;
  Image[] smallImage=new Image[9];//定義9個小圖像的圖像數組
  Image bigImage;//定義大圖片
  int arrange[][]=new int[3][3];//9個小圖像的排列位置
  int noImage=-1;//設置空的圖像位置為0

  int width=90;//設置小圖像寬度為90
  int height=90;//設置小圖像的高度為90

  int up=1;//上
  int down=2;//下
  int left=3;//左
  int right=4;//右

  boolean rePlay=false;//標記是否重新排列
  boolean isShowBig=false;//是否顯示大圖像

  int startx=0;
  int starty=0;

  int steps=0;//計算所用的步數
  int playSeconds=0;//花費的時間
  Thread timer;
  Button button1 = new Button();
  Button button2 = new Button();

  //Get a parameter value
  public String getParameter(String key, String def) {
    return isStandalone ? System.getProperty(key, def) :
      (getParameter(key) != null ? getParameter(key) : def);
  }

  //Construct the applet
  public Applet1() {
  }
  //Initialize the applet
  public void init() {
    try {
      jbInit();
    }
    catch(Exception e) {
      e.printStackTrace();
    }
  }
  //Component initialization
  private void jbInit() throws Exception {
    String name="pintu.jpg";//設置圖片名稱
    bigImage=getImage(getDocumentBase(),"image/"+name);//設置圖片目錄
    MediaTracker mediaTracker=new MediaTracker(this);//定義一個監聽器
    mediaTracker.addImage(bigImage,1);
    try{//查看圖像是否裝載成功
      mediaTracker.waitForID(1);
    }catch(Exception e){
      System.out.println("無法裝載圖片");
    }
    for(int i=0;i<9;i++){
      smallImage[i]=createImage(width,height);//創建小圖像
      Graphics g=smallImage[i].getGraphics();//獲得Graphics對象
      int j=i%3;
      int k=i/3;
      //將大圖像的某一區域畫到小圖像上
      g.drawImage(bigImage,0,0,width,height,j*width,k*height,(j+1)*width,(k+1)*height,this);
    }
    arrangeImage();//隨機排列小圖像
    timer=new Thread(this);//定義線程
    timer.start();//開始線程
    addKeyListener(this);//添加鍵盤監聽器
    addMouseListener(this);//添加鼠標監聽器
    button1.setLabel("打開");
    button1.setBounds(new Rectangle(126, 287, 57, 25));
    button1.addActionListener(new Applet1_button1_actionAdapter(this));
    this.setLayout(null);
    button2.setLabel("重玩");
    button2.setBounds(new Rectangle(196, 287, 57, 25));
    button2.addActionListener(new Applet1_button2_actionAdapter(this));
    this.add(button2, null);    this.add(button1, null);
  }
  //Start the applet
  public void start() {
  }
  //Stop the applet
  public void stop() {
  }
  //Destroy the applet
  public void destroy() {
  }
  //Get Applet information
  public String getAppletInfo() {
    return "Applet Information";
  }
  //Get parameter info
  public String[][] getParameterInfo() {
    return null;
  }

  public void arrangeImage(){
    int[] arr=new int[9];
    for(int i=0;i<9;i++)
      arr[i]=0;
    //隨機排列各個小圖像的位置
    for(int i=0;i<3;i++){
      for(int j=0;j<3;j++){
        int k=-1;
        do{
          k=(int)(9*Math.random());
        }while(arr[k]==1);
        arrange[i][j]=k;
        arr[k]=1;
      }
    }
    //隨機設置一個小圖像不顯示
    arrange[(int)(Math.random()*3)][(int)(Math.random()*3)]=noImage;
  }
  public void update(Graphics g){
    paint(g);
  }
  public void paint(Graphics g){
    if(isShowBig){//是否顯示大圖像,如是則顯示大圖像,返回
      g.drawImage(bigImage,0,0,this);
      isShowBig=false;
      return;
    }
    for(int i=0;i<3;i++){
      for(int j=0;j<3;j++){
        int x=i*width;
        int y=j*height;
        int z=arrange[i][j];
        if(z==-1){
          g.fill3DRect(x,y,width,height,true);//將小圖像設置為黑色
        }else{
          g.drawImage(smallImage[z],x,y,this);//繪制小圖像
          g.drawRect(x,y,width,height);
        }
      }
      g.drawImage(bigImage,3*width+5,0,this);
    }
    g.setColor(Color.WHITE);
    g.fillRect(0,3*height,3*width,height*3);
    g.setColor(Color.BLACK);
    g.setFont(new Font("宋體",Font.PLAIN,16));
    g.drawString("你已走了"+steps+"步",0,20+3*height);
    if(isFinish()){
      g.drawString("你成功了!",0,40+3*width);
    }
  }

  public void moveImage(int dire){
    int m=-1;
    int n=-1;
    boolean isRepaint=false;//查看小圖像是否移動
    for(int i=0;i<3;i++){//找出空區域的坐標
      for(int j=0;j<3;j++){
        if(arrange[i][j]==-1){
          m=i;
          n=j;
         break;
        }
      }
    }

    switch (dire){//響應鍵盤事件
      case 1:
        if(n==2){//如果空區域在最上面,則無法上移,退出
          break;
        }
        arrange[m][n]=arrange[m][n+1];
        arrange[m][n+1]=noImage;//空區域和移動的小圖像交換
        isRepaint=true;//設置變量為真,重畫
        break;
      case 2:
        if(n==0){
          break;
        }
        arrange[m][n]=arrange[m][n-1];
        arrange[m][n-1]=noImage;
        isRepaint=true;
        break;
      case 3:
        if(m==2){
          break;
        }
        arrange[m][n]=arrange[m+1][n];
        arrange[m+1][n]=noImage;
        isRepaint=true;
        break;
      case 4:
        if(m==0){
          break;
        }
        arrange[m][n]=arrange[m-1][n];
        arrange[m-1][n]=noImage;
        isRepaint=true;
        break;
      default:
        break;
    }
    //如果isRepaint為真,表示小圖像移動,重新繪制
    if(isRepaint){
      steps++;
      repaint();//重新繪制圖像
    }
  }


  //Main method
  public static void main(String[] args) {
    Applet1 applet = new Applet1();
    applet.isStandalone = true;
    Frame frame;
    frame = new Frame();
    frame.setTitle("Applet Frame");
    frame.add(applet, BorderLayout.CENTER);
    applet.init();
    applet.start();
    frame.setSize(270,300);
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    frame.setLocation((d.width - frame.getSize().width) / 2, (d.height - frame.getSize().height) / 2);
    frame.setVisible(true);
  }
  public void keyTyped(KeyEvent e) {
    /**@todo Implement this java.awt.event.KeyListener method*/
  }
  public void keyPressed(KeyEvent e) {
    /**@todo Implement this java.awt.event.KeyListener method*/
    //如果顯示大圖像,則重新繪制并返回
    if(isShowBig){
      if(e.getKeyChar()==KeyEvent.VK_S){
        isShowBig=false;
        steps=0;
        playSeconds=0;
        repaint();
      }
      return;
    }
    //如果重新開始,則調用arrangeImage方法,重新繪制圖像并返回
    if(rePlay){
      arrangeImage();
      rePlay=false;
      steps=0;
      playSeconds=0;
      repaint();
      return;
    }
    switch(e.getKeyCode()){//得到鍵盤按鍵信息
      case 38:
        moveImage(up);//上移
        break;
      case 40:
        moveImage(down);//下移
        break;
      case 39:
        moveImage(right);//右移
        break;
      case 37:
        moveImage(left);//左移
        break;
      case KeyEvent.VK_R://重新開始
        arrangeImage();
        steps=0;
        repaint();
        return;
      case KeyEvent.VK_S://顯示大圖像
        isShowBig=true;
        playSeconds=0;
        steps=0;
        repaint();
        return;
      default:
        return;
    }
  }

  public void keyReleased(KeyEvent e) {
    /**@todo Implement this java.awt.event.KeyListener method*/
  }

  public void run() {
    /**@todo Implement this java.lang.Runnable method*/
    while(Thread.currentThread()==timer){
      try{
        timer.sleep(1000);//線程睡眠1分鐘
        String str="你玩了"+playSeconds+"秒的時間,";
        showStatus(str);//顯示所費的時間
        playSeconds++;
      }catch(Exception e){
      }
    }
  }

  public boolean confirmDir(int row,int col){
    System.out.println(col);
    System.out.println(row);
    if(col>2||row>2){
      return false;
    }
    if(col==1||col==2)
      if(arrange[col-1][row]==-1){
        arrange[col-1][row] = arrange[col][row];
        arrange[col][row]=-1;
        return true;
      }
    if(col==0||col==1)
      if(arrange[col+1][row]==-1){
        arrange[col+1][row] = arrange[col][row];
        arrange[col][row]=-1;
        return true;
      }
    if(row==1||row==2)
      if(arrange[col][row-1]==-1){
        arrange[col][row-1] = arrange[col][row];
        arrange[col][row]=-1;
        return true;
      }
    if(row==1||row==0)
      if(arrange[col][row+1]==-1){
        arrange[col][row+1] = arrange[col][row];
        arrange[col][row]=-1;
        return true;
      }
    return false;
  }
  public void mouseClicked(MouseEvent e) {
    /**@todo Implement this java.awt.event.MouseListener method*/
    if(isShowBig)
      return;
    int x=e.getX()-startx;
    int y=e.getY()-starty;
    int row=x/width;
    int col=y/height;
    if(row<=2&&col<=2){
      boolean isRepaint = confirmDir(col, row);
      if (isRepaint)
        steps++;
      repaint();
    }
  }

  public boolean isFinish(){
    boolean isFinish=true;
    int i=0;
    for(int j=0;j<3;j++){
      for(int k=0;j<3;j++){
        if(arrange[k][j]!=i&&arrange[k][j]!=-1)
          isFinish=false;
      }
    }
    return isFinish;
  }

  public void mousePressed(MouseEvent e) {
    /**@todo Implement this java.awt.event.MouseListener method*/
  }
  public void mouseReleased(MouseEvent e) {
    /**@todo Implement this java.awt.event.MouseListener method*/
  }
  public void mouseEntered(MouseEvent e) {
    /**@todo Implement this java.awt.event.MouseListener method*/
  }
  public void mouseExited(MouseEvent e) {
    /**@todo Implement this java.awt.event.MouseListener method*/
  }
  public boolean isFocusTraversable() {
   return true;
 }


  void button1_actionPerformed(ActionEvent e) {
    JFileChooser fileChooser1 = new JFileChooser();//定義一個JFileChooser對象
    fileChooser1.setCurrentDirectory(new File("."));
    //設置可顯示的圖像文件的后綴名
    fileChooser1.setFileFilter(new javax.swing.filechooser.FileFilter(){
      public boolean accept(File f){
      String name = f.getName().toLowerCase();
      return name.endsWith(".gif")|| name.endsWith(".jpg")
           || name.endsWith(".jpeg")|| f.isDirectory();
      }
      public String getDescription(){  return "Image files";}
    });
    int t=fileChooser1.showOpenDialog(this);
    if(t==JFileChooser.APPROVE_OPTION){
      //得到文件后綴名
      String name=fileChooser1.getSelectedFile().getAbsolutePath();
      bigImage= Toolkit.getDefaultToolkit().getImage(name);//調用圖像
      MediaTracker mediaTracker = new MediaTracker(this);
      mediaTracker.addImage(bigImage,0);
      try{//查看圖像是否裝載成功
        mediaTracker.waitForID(0);
      }catch(Exception err){
        System.out.println("無法裝載圖片");
      }
      width=bigImage.getWidth(this)/3;
      height=bigImage.getHeight(this)/3;
      System.out.println(width);
      System.out.println(height);
      for(int i=0;i<9;i++){
        smallImage[i]=createImage(width,height);//創建小圖像
        Graphics g=smallImage[i].getGraphics();//獲得Graphics對象
        int j=i%3;
        int k=i/3;
        //將大圖像的某一區域畫到小圖像上
        g.drawImage(bigImage,0,0,width,height,j*width,k*height,(j+1)*width,(k+1)*height,this);
      }
      arrangeImage();//隨機排列小圖像
    }
    playSeconds=0;
    steps=0;
    this.requestFocus(true);//窗口獲得焦點,響應鍵盤事件
    repaint();
  }

  void button2_actionPerformed(ActionEvent e) {
    arrangeImage();
    isShowBig=false;
    steps=0;
    playSeconds=0;
    repaint();
  }
}

class Applet1_button1_actionAdapter implements java.awt.event.ActionListener {
  Applet1 adaptee;

  Applet1_button1_actionAdapter(Applet1 adaptee) {
    this.adaptee = adaptee;
  }
  public void actionPerformed(ActionEvent e) {
    adaptee.button1_actionPerformed(e);
  }
}

class Applet1_button2_actionAdapter implements java.awt.event.ActionListener {
  Applet1 adaptee;

  Applet1_button2_actionAdapter(Applet1 adaptee) {
    this.adaptee = adaptee;
  }
  public void actionPerformed(ActionEvent e) {
    adaptee.button2_actionPerformed(e);
  }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91香蕉视频黄| www成人在线观看| 欧美大片免费久久精品三p| 2021中文字幕一区亚洲| 亚洲综合在线免费观看| 国产一区二区三区观看| 91久久精品一区二区| 久久久久久久久蜜桃| 亚洲二区在线视频| 成人国产精品免费观看视频| 日韩一区二区视频| 亚洲欧美日韩国产一区二区三区 | 日韩成人一区二区| aaa国产一区| 久久新电视剧免费观看| 日韩和欧美的一区| 色婷婷久久一区二区三区麻豆| 精品久久人人做人人爰| 香蕉乱码成人久久天堂爱免费| 成人免费高清在线观看| 精品国产乱子伦一区| 日韩经典一区二区| 欧美老女人第四色| 亚洲夂夂婷婷色拍ww47| 99re成人精品视频| 国产精品欧美极品| 国产成人综合自拍| 久久精品视频一区二区三区| 奇米综合一区二区三区精品视频 | 一区二区三区在线观看欧美| 不卡的av电影| 中文成人综合网| 成人一区在线看| 国产欧美一区视频| 国产精品18久久久| 久久精品视频在线看| 国产精品456露脸| 国产亚洲欧美日韩在线一区| 国产精品性做久久久久久| 久久久国产午夜精品| 国产美女一区二区| 国产精品久久久久四虎| av成人免费在线观看| 专区另类欧美日韩| 色综合一区二区| 亚洲欧美日韩电影| 欧美日韩国产小视频在线观看| 亚洲资源中文字幕| 5858s免费视频成人| 免费在线一区观看| 久久久久国产精品麻豆| 从欧美一区二区三区| 亚洲欧洲精品天堂一级| 色综合久久99| 香蕉久久夜色精品国产使用方法| 欧美精品成人一区二区三区四区| 日韩中文欧美在线| 久久久久久99久久久精品网站| 成人午夜视频在线| 亚洲一区二区影院| 精品美女被调教视频大全网站| 国产精品456| 亚洲线精品一区二区三区 | 国产亚洲午夜高清国产拍精品 | 国产视频一区二区在线观看| 成人av午夜影院| 亚洲成人动漫av| 欧美精品一区二区在线播放| 成人av在线网站| 日韩精品成人一区二区三区| 久久久久国产精品人| 91九色02白丝porn| 韩日欧美一区二区三区| 综合久久久久久久| 91精品国模一区二区三区| 国产一区在线精品| 一区二区三区四区在线免费观看| 欧美成人bangbros| 成人av在线网站| 美女精品一区二区| 亚洲视频在线一区观看| 欧美一区二区在线免费观看| 高清久久久久久| 日本欧美在线看| 国产精品久久久99| 精品精品国产高清a毛片牛牛| 97久久久精品综合88久久| 麻豆精品一二三| 一区二区三区中文在线| 久久精品视频网| 日韩欧美在线一区二区三区| 成人看片黄a免费看在线| 石原莉奈在线亚洲三区| 亚洲欧洲精品一区二区三区 | 欧美少妇一区二区| 成人的网站免费观看| 久久国产精品99久久人人澡| 一区二区三区四区不卡视频| 中文字幕+乱码+中文字幕一区| 欧美一区二区三区四区五区| 色域天天综合网| 国产传媒欧美日韩成人| 狠狠v欧美v日韩v亚洲ⅴ| 日本在线不卡视频| 亚洲成年人网站在线观看| 国产精品久久久久久久久动漫| 精品国产髙清在线看国产毛片| 欧美日韩精品是欧美日韩精品| 99久久精品免费观看| 成人黄页在线观看| 国产91丝袜在线播放九色| 国产综合色视频| 久久99久久久久| 青草国产精品久久久久久| 天天色天天操综合| 午夜天堂影视香蕉久久| 亚洲国产视频在线| 亚洲免费观看高清完整版在线| 中文字幕一区二区在线播放| 国产精品久久午夜| 国产色产综合产在线视频| 精品99一区二区三区| 精品日韩成人av| 精品处破学生在线二十三| 日韩精品一区二区三区视频 | 91激情在线视频| 欧洲av一区二区嗯嗯嗯啊| 91搞黄在线观看| 欧美日韩国产综合草草| 91精品国产麻豆国产自产在线| 欧美精品xxxxbbbb| 精品国产亚洲在线| 久久精品网站免费观看| 中文一区二区完整视频在线观看| 日本一区二区成人| 亚洲欧美日韩综合aⅴ视频| 亚洲自拍欧美精品| 日韩成人免费在线| 国产一区二区三区日韩| 成人av在线资源网站| 色欧美日韩亚洲| 欧美精品电影在线播放| 欧美精品一区男女天堂| 国产网站一区二区三区| 亚洲精品一二三| 日本视频免费一区| 国产不卡在线一区| 欧美三级日韩三级| 日韩视频不卡中文| 中文字幕免费一区| 天堂一区二区在线| 国产乱子轮精品视频| 色综合久久九月婷婷色综合| 91精品国产综合久久精品| 亚洲国产精品ⅴa在线观看| 亚洲国产精品一区二区久久 | 成人蜜臀av电影| 欧美日韩你懂的| 久久精品一区二区三区不卡牛牛 | 亚洲h精品动漫在线观看| 久久国产精品免费| 色婷婷综合视频在线观看| 日韩欧美另类在线| 亚洲丝袜美腿综合| 国产一区二区主播在线| 日本高清不卡在线观看| 久久综合九色综合久久久精品综合| 国产精品国产三级国产普通话99| 日韩专区在线视频| av在线这里只有精品| 日韩欧美一区二区在线视频| 18成人在线视频| 精品综合免费视频观看| 在线视频中文字幕一区二区| www激情久久| 日韩黄色免费电影| 色香蕉久久蜜桃| 国产亚洲成av人在线观看导航| 肉丝袜脚交视频一区二区| 99久久免费视频.com| 久久精品日产第一区二区三区高清版| 亚洲综合激情小说| av中文一区二区三区| 久久综合成人精品亚洲另类欧美 | 日韩美女视频一区二区| 国产麻豆精品一区二区| 欧美一区欧美二区| 丝袜国产日韩另类美女| 色婷婷激情一区二区三区| 国产精品久久久久一区二区三区 | 欧美第一区第二区| 天使萌一区二区三区免费观看| 91久久久免费一区二区| 亚洲欧洲性图库| 成人国产精品视频| 中文字幕在线一区免费| 国产超碰在线一区| 国产精品萝li| 成人福利视频在线| 综合欧美一区二区三区|