📄 fishpanel.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 + -