?? fishpanel.java
字號(hào):
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; //向右游的魚(yú)的圖片
private Image imageOfFishOnLeft;//向左游的魚(yú)的圖片
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; //魚(yú)圖片的寬度(所有圖片寬度都為64)
int height=56; //魚(yú)圖片的寬度(各圖片高度不一致)
//隨機(jī)產(chǎn)生魚(yú)初始出現(xiàn)的位置
int x = rand.nextInt(600 - width);
int y = rand.nextInt(468 - height);
//線程實(shí)例化
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();
}
//魚(yú)向左、右游動(dòng)時(shí),顯示的圖片不同
if(fish.isRunning){
//魚(yú)向左、右游動(dòng)時(shí),顯示的圖片不同
if(fish.right == 1)
//標(biāo)志right=1表示向右游,畫魚(yú)
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);
}
}
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -