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

📄 fishpanel.java

📁 本系统实现在几台计算机屏幕上连贯地显示一条鱼游动大动画.
💻 JAVA
字号:
package fish;

import java.awt.*;
import java.util.Random;
import java.util.StringTokenizer;
import javax.swing.JPanel;


public class FishPanel extends JPanel implements MessageListener
{
	private Random rand = new Random();
	private Image imageOfBackground;//背景图片
	private Image imageOfFishOnRight;	//向右游的鱼的图片
	private Image imageOfFishOnLeft;//向左游的鱼的图片
	Fish fish;
	private int id;
	
	MessageManager messageManager;
 	
	public FishPanel(int id,MessageManager messageManager)
	{
		this.id = id;
		this.messageManager = messageManager;
		messageManager.connect(this);
		setSize(600, 468);
		imageOfBackground = Toolkit.getDefaultToolkit().getImage("./Pics/sea.jpg");
		imageOfFishOnRight = Toolkit.getDefaultToolkit().getImage("./Pics/fish00.gif");
		imageOfFishOnLeft = Toolkit.getDefaultToolkit().getImage("./Pics/fish01.gif");
		int width=64;	//鱼图片的宽度(所有图片宽度都为64)
	    int height=56;	//鱼图片的宽度(各图片高度不一致)
		//随机产生鱼初始出现的位置
		int x = rand.nextInt(600 - width);
		int y = rand.nextInt(468 - height);
		//线程实例化
		if(this.id == 0){
			fish = new Fish(id,x,y,width,height,this,true);}
		else{
			fish = new Fish(id,x,y,width,height,this,false);
		}
	}

 	
	public void paintComponent(Graphics g)
	{
		super.paintComponent(g);
		g.drawImage(imageOfBackground,0,0,getWidth(),getHeight(),this);
		try
		{//加载背景图片后,等待30微妙
			Thread.sleep(30);
		}
		catch(InterruptedException ex)
		{
			ex.printStackTrace();
		}
		//鱼向左、右游动时,显示的图片不同
		if(fish.isRunning){
			//鱼向左、右游动时,显示的图片不同
			if(fish.right == 1)
				//标志right=1表示向右游,画鱼
				g.drawImage(imageOfFishOnRight,fish.x,fish.y,this);
			else
				g.drawImage(imageOfFishOnLeft,fish.x,fish.y,this); 
			}
		}

	public void messageReceived( String from, String message ) {
		System.out.println("receive message"+from+message);
	    if(!from.equals(Integer.toString(fish.fishID))){
	    	StringTokenizer tokenizer = new StringTokenizer(message,FishConstants.ARRAY_SEPARATOR);
	    	int[] fishStates = new int[12];
	    	for(int i = 0;i < 12;i++){
	    		fishStates[i] = Integer.parseInt(tokenizer.nextToken());
	    		}
	    	System.out.println(fishStates[0]);
	    	fish = new Fish(this.id,fishStates,this,true);
	    }
	    } 
 
}

⌨️ 快捷键说明

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