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

📄 buttonmove.java

📁 java关于鼠标移动的程序
💻 JAVA
字号:
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.image.*;

class ImageApp extends Canvas{
	Image list;
	Image[] array=new Image[16];
	Image[] garray=new Image[16];
	ImageIcon[] icon=new ImageIcon[16];
	ImageIcon[] gicon=new ImageIcon[16];
	int w;
	int h;
	int index;
	public void init(){
		MediaTracker mt=new MediaTracker(this);
		Toolkit tk=Toolkit.getDefaultToolkit();
		list=tk.createImage(ImageApp.class.getResource("p1.jpg"));
		mt.addImage(list,0);
		try{
			mt.waitForID(0);
		}catch(InterruptedException e){ } 
		list=list.getScaledInstance(400,400,1);
		mt.addImage(list,1);
		try{
			mt.waitForID(1);
		}catch(InterruptedException e){ } 
		w=list.getWidth(this)/4;
		h=list.getHeight(this)/4;
		for(int i=0;i<4;i++){
			for(int j=0;j<4;j++){
				array[index]=this.createImage(w,h);
				CropImageFilter crop=new CropImageFilter(j*w,i*h,w,h);
				FilteredImageSource fs=new FilteredImageSource(list.getSource(),crop);
				array[index]=this.createImage(fs);
				mt.addImage(array[index],2);
				index++;
			}
		}
		for(int i=0;i<16;i++){
			Gray gf=new Gray();
			garray[i]=createImage(new FilteredImageSource(array[i].getSource(),gf));
			mt.addImage(garray[i],3);
		}
		try{
			mt.waitForID(3);
		}catch(InterruptedException e){
		}
		
		for(int i=0;i<16;i++){
			icon[i]=new ImageIcon(array[i]);
			gicon[i]=new ImageIcon(garray[i]);
		}
	}
}
class Gray extends RGBImageFilter{
	public Gray(){
		canFilterIndexColorModel=true;
	}
	public int filterRGB(int x,int y,int rgb){
		int gray=(((rgb&0xff0000)>>16)+((rgb&0x00ff00)>>8)+(rgb&0x0000ff))/5;
		return(0xff000000|(gray<<16)|(gray)<<8|gray);
	}
}
class IDbutton extends JButton{
	ImageIcon im;
	ImageIcon gim;
	int id;
	boolean Flag;
	public IDbutton(int a){
		id=a;
		this.setBorder(null);
	}
	public int IDG(){
		return id;
	}
	public void See(){
		Flag=true;
		setIcon(im);	
	}
	public void UnSee(){
		Flag=false;
		setIcon(gim);
	}
	public ImageIcon GetS(){
		return im;

	}
	public void SetS(ImageIcon ii){
		im=ii;
		this.setIcon(im);
	}
	public ImageIcon Getgs(){
		return gim;
	}
	public void Setgs(ImageIcon ii){
		gim=ii;
	}
}
class Toe extends Dialog{
	String s;
	JLabel label=new JLabel();
	public Toe(Frame parent){
		super(parent, "消息框", false);
		label.setSize(new Dimension(50,20));
		setLayout(new BorderLayout());
		add(label,BorderLayout.CENTER);
		setSize(180,90);
	}
	public boolean handleEvent(Event evt){
		if(evt.id==Event.WINDOW_DESTROY)
		    dispose();
		else
		    return super.handleEvent(evt);
		return true;
	}
	public void SetL(String str){
		label.setText(str);
	}
}		    
public class ButtonMove extends Applet{
	Toe dialog=new Toe(new Frame());
	IDbutton[] Box=new IDbutton[16];
	static int random;
	static int ran;
	ImageApp imageapp=new ImageApp();
	ImageIcon[] icon=new ImageIcon[16];
	ImageIcon[] gicon=new ImageIcon[16];
	public void init(){
		imageapp.init();
	    Panel p=new Panel();
		p.setLayout(new GridLayout(4,4));
		setLayout(new BorderLayout());
		for(int i=0;i<16;i++){
			icon[i]=imageapp.icon[i];
			gicon[i]=imageapp.gicon[i];
			Box[i]=new IDbutton(i);
			p.add(Box[i]);
			
			Box[i].SetS(icon[i]);
		}
		add(p,BorderLayout.CENTER);
		p=new Panel();
		JButton bstart=new JButton("开始游戏");
		JButton  bend=new JButton("完成游戏");
		bstart.addActionListener(new SL());
		bend.addActionListener(new EL());
		p.setLayout(new GridLayout(1,2));
		p.add(bstart);
		p.add(bend);
		add(p,BorderLayout.NORTH);
	}
	public void StartSet(){
		ImageIcon image;
		for(int i=0;i<16;i++){
				random=(int)(Math.random()*(15-i));
    			Box[i].SetS(icon[random]);
    			Box[i].Setgs(gicon[random]);
				image=icon[15-i];
				icon[15-i]=icon[random];
				icon[random]=image;
				image=gicon[15-i];
				gicon[15-i]=gicon[random];
				gicon[random]=image;
				Box[i].See();
				Box[i].addActionListener(new BL(i));			
		}
		ran=(int)(Math.random()*15);
		Box[ran].UnSee();		
	}
	public void MoveA1(int id){
		ImageIcon str;
		if((Box[id+1]!=null)&&(Box[id+1].Flag==false)){		
			str=Box[id+1].GetS();
			Box[id+1].SetS(Box[id].GetS());
			Box[id].SetS(str);
			str=Box[id+1].Getgs();
			Box[id+1].Setgs(Box[id].Getgs());
			Box[id].Setgs(str);	
			Box[id+1].See();
			Box[id].UnSee();		
		}
	}
	public void MoveA4(int id){
		ImageIcon str;
		if((Box[id+4]!=null)&&(Box[id+4].Flag==false)){		
			str=Box[id+4].GetS();
			Box[id+4].SetS(Box[id].GetS());
			Box[id].SetS(str);
			str=Box[id+4].Getgs();
			Box[id+4].Setgs(Box[id].Getgs());
			Box[id].Setgs(str);
			Box[id+4].See();
			Box[id].UnSee();
		}
	}
	public void MoveJ1(int id){
		ImageIcon str;
		if((Box[id-1]!=null)&&(Box[id-1].Flag==false)){
			
			str=Box[id-1].GetS();
			Box[id-1].SetS(Box[id].GetS());
			Box[id].SetS(str);
			str=Box[id-1].Getgs();
			Box[id-1].Setgs(Box[id].Getgs());
			Box[id].Setgs(str);
			Box[id-1].See();
			Box[id].UnSee();
		}
	}
	public void MoveJ4(int id){
		ImageIcon str;		
		if((Box[id-4]!=null)&&(Box[id-4].Flag==false)){
			
			str=Box[id-4].GetS();
			Box[id-4].SetS(Box[id].GetS());
			Box[id].SetS(str);
			str=Box[id-4].Getgs();
			Box[id-4].Setgs(Box[id].Getgs());
			Box[id].Setgs(str);
			Box[id-4].See();
			Box[id].UnSee();
		}
	}
	public static void main(String[] args){
		Frame f=new Frame("动脑筋大比拼");
		ButtonMove b=new ButtonMove();
		b.init();
		b.start();
		f.add(b,BorderLayout.CENTER);
		f.addWindowListener(
			new WindowAdapter(){
				public void  windowClosing(WindowEvent e){
					System.exit(0);
				}
			}
		);
		f.setSize(402,442);
		f.setResizable(false);
		f.setVisible(true);
		
	} 
	class BL implements ActionListener{
		int id;
		int num;
		public BL(int i){
			id=i;
		}
		public void actionPerformed(ActionEvent e){
			this.num=this.id;
			switch(num){
				case 0:
				MoveA1(num);
				MoveA4(num);
				break;
				case 1:
				case 2:
				MoveJ1(num);
				MoveA1(num);
				MoveA4(num);
			    break;
				case 3:
				MoveJ1(num);
				MoveA4(num);
				break;
				case 4:
				case 8:
				MoveA4(num);
				MoveJ4(num);
				MoveA1(num);
				break;
				case 7:
				case 11:
				MoveA4(num);
				MoveJ4(num);
				MoveJ1(num);
				break;
				case 5:
				case 6:
				case 9:
				case 10:
				MoveA1(num);
				MoveA4(num);
				MoveJ1(num);
				MoveJ4(num);
				break;
				case 12:
				MoveA1(num);
				MoveJ4(num);
				break;
				case 15:
				MoveJ4(num);
				MoveJ1(num);
				break;
				case 13:
				case 14:
				MoveJ1(num);
				MoveA1(num);
				MoveJ4(num);
				break;
			}
		}
	}
	class EL implements ActionListener{
		public void actionPerformed(ActionEvent e){
			int i=0;
			for(;i<15;i++){
				if(Box[i].GetS()!=imageapp.icon[i]){				
					break;
				}
	        }
			if(i==15){
				dialog.SetL("    你成功了!恭喜你");
				dialog.show(true);
			}else{
				dialog.SetL("    你还没有完成任务!");
				dialog.show(true);
			}	        
        }
    }
    class SL implements ActionListener{
    	public void actionPerformed(ActionEvent e){
    		          StartSet();
    		
    	}
    }   						
}		
		
		

⌨️ 快捷键说明

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