⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 复件 dl_01.java

📁 拼图  主要是可以拼的图 真对5到6岁的儿童开发代码很简单 大家可以下来
💻 JAVA
字号:
//拼图游戏
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.net.*;

public class dl_01 extends JApplet implements ActionListener,MouseMotionListener,MouseListener
{
private Timer timer;
private Image imagel;
private JButton command;
//时间显示标签
private JLabel time1=new JLabel("time:0");
//反馈信息标签
private JLabel feedback=new JLabel("Successful!",JLabel.CENTER);
private String[]   picname={"01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16"};
//图片文件名数组
private String piclist[][]=new String[3][16];
//存放图片的数组
private ImageIcon img[]=new ImageIcon[16];
//显示图片的标签数组
private JLabel piclabel[]=new JLabel[16];
//存放图片编号的变量
private int picno;
//存放按钮图片的数组
private ImageIcon but_icon[]=new ImageIcon[3];
//命令按钮的图片文件名数组
private String but_picname[]={"pic/image.jpg","pic/start.jpg","pic/stop.jpg"};
//按下鼠标键时的坐标位置
private int px,py;
//图片的状态数组
private int statuslist[]=new int[16];
//时间变量
private int p_time;
//游戏状态变量
private int game_status;
//初始化applet
public void init()
{
//取得每一张图快的文件名
for(int i=0;i<16;i++){
piclist[0][i]="pic/风景1_"+picname[i]+".jpg";
 piclist[1][i]="pic/风景2_"+picname[i]+".jpg";
 piclist[2][i]="pic/风景3_"+picname[i]+".jpg";
 }
 //赋值变量c等于Contentpane
 Container c=getContentPane();
 c.setLayout(null);
 c.setSize(500,400);
 //加载背景图案
 try {imagel=getImage(new URL(getCodeBase(),"pic/background.jpg"));}
 catch(MalformedURLException e){System.out.println("下载图片文件发生错误URL:"+e+"\n");return;}
 //建立一个放置所有组件的panel
 ImgJPanel panl=new ImgJPanel(imagel);
 panl.setLayout(null);
 //设定panel的尺寸
 panl.setSize(500,400);
 try{
 //加载命令按钮的图案
 for(int i=0;i<3;i++){
 but_icon[i]=new ImageIcon(new URL(getCodeBase(),but_picname[i]));
 }
 }
 catch(MalformedURLException e){System.out.println("下载图片文件发生错误 URL:"+e+"\n");return;}
 //在panel上建立一个command按钮
 command=new JButton(but_icon[0]);
 command.setSize(97,33);
 command.setLocation(380,20);
 command.addActionListener(this);
 panl.add(command);
 //设定反馈信息标签的格式
 feedback.setBounds(150,202,200,60);
 feedback.setForeground(Color.blue);
 feedback.setVisible(false);
 feedback.setFont(new Font("Arial",Font.PLAIN,36));
 //将反馈信息标签加入panel中
 panl.add(feedback);
 int col,row;
 //在panel上建立16个JLabel组件,以显示16张图块
 for(int i=0;i<16;i++){
 piclabel[i]=new JLabel();
 piclabel[i].setSize(110,70);
 col=i%4;
 row=(int)i/4;
 piclabel[i].setLocation(30+110*col,90+70*row);
 piclabel[i].addMouseMotionListener(this);
 piclabel[i].addMouseListener(this);
 panl.add(piclabel[i]);
 }
 picno=0;
 //设定时间标签的格式
 time1.setSize(80,24);
 time1.setForeground(Color.red);
 time1.setLocation(280,45);
 //将时间标签加入pane1中
 panl.add(time1);
 //将panel加入ContentPane中
 c.add(panl);

 timer=new Timer(1000,this);
 }

 //开始运行applet
 public void start()
  {
    game_status=0;
  }
 //加载图片
 public void loadpicture(){
   try {
    for(int i=0;i<16;i++) {
     img[i]=new ImageIcon(new URL(getCodeBase(),piclist[picno][i]));
     piclabel[i].setIcon(img[i]);
                          }
    picno++;
     if(picno>2) picno=0;
        }
   catch(MalformedURLException e)  {System.out.println("下载图片文件发生错误 URL:"+e+"\n");return;}
   }

 //随机分布图片位置
  public void random_picture(){
   for(int i=0;i<16;i++){
    piclabel[i].setLocation(30+(int)(Math.random()*330),90+(int)(Math.random()*210));
    statuslist[i]=0;
                        }
                              }
 //检查是否已经完成了子程序
 public boolean check_finished(){
  boolean flag=true;
  for (int i=0;i<16;i++){
   if (statuslist[i]==0){
    flag=false;
    break;
                        }
                         }
 return flag;
                                }
 //按下命令钮时的时间处理程序
 public void actionPerformed(ActionEvent e){
  if(e.getSource()== command){
   switch(game_status){
    case 0: //image显示图像
     game_status=1;
     loadpicture();
     feedback.setVisible(false);
     command.setIcon(but_icon[1]);
   break;
    case 1: //start开始游戏
     game_status=2;
     p_time=0;
     time1.setText("time :" + p_time);
     feedback.setVisible(false);
     random_picture();
     timer.start();
     command.setIcon(but_icon[2]);
   break;
    case 2: //stop停止游戏
    game_status=0;
    timer.stop();
    feedback.setText("Stop!");
    feedback.setVisible(true);
    command.setIcon(but_icon[0]);
    }
   }
  if (game_status==2){
    if(e.getSource() == timer){
      p_time++;
      time1.setText("time :" + p_time);
      }
     }
    }

 public void mouseMoved(MouseEvent e){}

 //拖动鼠标的事件处理程序
 public void mouseDragged(MouseEvent e){
  int x1=e.getX();
  int y1=e.getY();
  int x,y;
   for(int i=0;i<16;i++){
    if(e.getSource()==piclabel[i]){
     x=piclabel[i].getLocation().x;
     y=piclabel[i].getLocation().y;
     piclabel[i].setLocation(x+x1-px,y+y1-py);
     }
    }
   }
 //按下鼠标键的事件处理程序
 public void mousePressed(MouseEvent e){
  px=e.getX();
  py=e.getY();
 }
 //释放鼠标键时事件处理程序
 public void mouseReleased(MouseEvent e){
  int x1,y1;
  int ox,oy;
  for(int i=0;i<16;i++){
   if(e.getSource()==piclabel[i]){
    //取得图片目前的坐标位置
    x1=piclabel[i].getLocation().x;
    y1=piclabel[i].getLocation().y;
    //计算图片正确的坐标位置
    ox=30+(int)(i%4)*110;
    oy=90+(int)(i/4)*70;
    //判断是否搬移到正确位置上
    if(x1>ox-8 && y1>oy-8 && x1<ox+8 && y1<oy+8){
    piclabel[i].setLocation(ox,oy);
    statuslist[i]=1;
    //检查图片是否已经完成
    if(check_finished()==true){
     game_status=0;
     timer.stop();
     feedback.setText("Successful!");
     feedback.setVisible(true);
     command.setIcon(but_icon[0]);
    }
   } else {
    statuslist[i]=0;
   }
  }
 }
}
public void mouseEntered(MouseEvent e){}
public void mouseExited(MouseEvent e){}
public void mouseClicked(MouseEvent e){}

 //JPanel的扩展对象,用来放置背景图案
  class ImgJPanel extends JPanel{
    private Image image1;
    public ImgJPanel(Image image_a){
     this.image1= image_a;
     }
    public void paintCompont(Graphics g) {
      g.drawImage(image1,0,0,this);
                                         }
           }
         }





⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -