?? displaypanel.java
字號:
package Emluator;
import javax.swing.*;
import java.awt.*;
/**
* <p>Title:DisplayPanel </p>
* <p>Description: 以動畫的形式顯示正在行駛的車輛的狀態(tài)</p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: 西安電子科技大學(xué)計(jì)算機(jī)學(xué)院研03軟件與理論</p>
* @author 任聲駿
* @version 1.0
*/
public class DisplayPanel extends JPanel{
private int pro=4;//公里與像素的比例
private int stationPos[]={0,24,45,107,128,152,174};//各站的坐標(biāo)
private String stationName[]={"寶雞站","虢鎮(zhèn)","蔡家坡","武功","興平","咸陽","西安站"};//各站的站名
public DisplayPanel() {
}
//重載JPanel中的paintComponent函數(shù),實(shí)現(xiàn)行駛車輛圖形界面的刷新
public void paintComponent(Graphics comp){
super.paintComponent(comp);
Graphics2D comp2D=(Graphics2D)comp;
comp2D.setColor(Color.white);
comp2D.fillRect(0,0,800,200);
comp2D.setColor(Color.blue);
//畫出各站的位置和站名
for(int i=0;i<7;i++){
comp2D.draw3DRect(25+pro*stationPos[i],200,8,8,true);
comp2D.drawString(stationName[i],15+pro*stationPos[i],220);
}
Toolkit kit=Toolkit.getDefaultToolkit();
Image iveco=kit.getImage("bus.gif");
Image volvo=kit.getImage("car.gif");
//畫出正開往寶雞方向的車輛的位置,并標(biāo)出車牌號
if(Emluator.carMovingToBJ!=null){
String temp;
if (Emluator.carMovingToBJ.size() > 0) {
//對正開往寶雞方向的車輛隊(duì)列中的所有車輛,根據(jù)相應(yīng)的車輛類型選擇相應(yīng)的圖形分別繪制車輛的位置
for (int i = 0; i < Emluator.carMovingToBJ.size(); i++) {
int x = 25 +(int) ( (174 - ( (Vehicle) Emluator.carMovingToBJ.get(i)).getDisAwayBegin()) *pro);
temp = ( (Vehicle) Emluator.carMovingToBJ.get(i)).getLicenseNumber();
//如果車輛是Iveco類型的,用圖形iveco表示
if ( ( (Vehicle) Emluator.carMovingToBJ.get(i)).getClass().getName().equals("Emluator.Iveco")) {
//comp2D.drawImage(iveco, x, 170, this);
comp2D.setColor(Color.black);
comp2D.draw3DRect(x,170,20,5,true);
comp2D.drawString(temp, x, 168);
} else {//如果車輛是Volvo類型的,用圖形volvo表示
//comp2D.drawImage(volvo, x, 140, this);
comp2D.setColor(Color.blue);
comp2D.draw3DRect(x,140,20,10,true);
comp2D.drawString(temp, x, 138);
}
}
}
}
//畫出正開往西安方向的車輛的位置,并標(biāo)出車牌號
if(Emluator.carMovingToXN!=null){
String temp;
if(Emluator.carMovingToXN.size()>0){
//對正開往寶雞方向的車輛隊(duì)列中的所有車輛,根據(jù)相應(yīng)的車輛類型選擇相應(yīng)的圖形分別繪制車輛的位置
for (int i = 0; i < Emluator.carMovingToXN.size(); i++) {
int x=25+(int)(((Vehicle)Emluator.carMovingToXN.get(i)).getDisAwayBegin()*pro)-20;
temp=((Vehicle)Emluator.carMovingToXN.get(i)).getLicenseNumber();
//如果車輛是Iveco類型的,用圖形iveco表示
if(((Vehicle)Emluator.carMovingToXN.get(i)).getClass().getName().equals("Emluator.Iveco")){
comp2D.setColor(Color.black);
comp2D.drawString(temp,x,68);
comp2D.draw3DRect(x,70,20,5,true);
//comp2D.drawImage(iveco, x, 70, this);
}
else {//如果車輛是Volvo類型的,用圖形volvo表示
//comp2D.drawImage(volvo, x, 40, this);
comp2D.setColor(Color.blue);
comp2D.draw3DRect(x,40,20,10,true);
comp2D.drawString(temp,x,38);
}
}
}
}
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -