import java.util.Timer;
import java.util.TimerTask;
public class TrafficLight extends TimerTask {
private int workStatus;
private int trafficSignal;
public int[] lightTime=new int[3];
private Timer myTimer=new Timer();
int count=0;
public TrafficLight(){
workStatus=0;
trafficSignal=3;
lightTime[0]=20;
lightTime[1]=5;
lightTime[2]=30;
}
public void bootUp() {
workStatus=1;
myTimer.schedule(this,0,1000);
}
public int getWorkStatus() {
return workStatus;
}
public void setWorkStatus(boolean value) {
if(value) {
workStatus=1;
}
else {
workStatus=0;
}
}
public int getTrafficSignal() {
if(workStatus>0)
return trafficSignal;
else
return 0;
}
public void setTrafficSignal(int signal) {
if(signal>0 && signal<=3)
trafficSignal=signal;
count=0;
}
public boolean setSignalTime(int[] signalTime) {
boolean value=https://bbs.csdn.net/topics/false;
if(signalTime.length==3) {
for(int i=0; i<signalTime.length; i++) {
lightTime[i]=signalTime[i];
}
value=https://bbs.csdn.net/topics/true;
}
return value;
}
public void getSignalTime(int[] signalTime) {
for(int i=0; i<signalTime.length; i++) {
signalTime[i]=lightTime[i];
}
}
public void switchSignal() {
if(trafficSignal<3) {
trafficSignal++;
}
else {
trafficSignal=1;
}
count=0;
}
public void run() {
if(workStatus==1) {
count++;
if(count==lightTime[trafficSignal-1]) {
count=0;
switchSignal();
}
}
}
public void displayStatus() {
System.out.println("當前交通燈作業在"+trafficSignal+"狀態");
}
}
import java.awt.Color;
import java.awt.Graphics;
public class CircleLight extends TrafficLight {
int radius=0;
int direction=0;
int x=0;
int y=0;
Graphics board;
public CircleLight() {
radius=10;
direction=0;
}
public void setPosition(int xvalue, int yvalue, int radiusValue) {
x=xvalue;
y=yvalue;
radius=radiusValue;
}
public void setBoard(Graphics boardValue) {
board=boardValue;
}
public void showLight() {
int edge=2;
board.setColor(Color.black);
board.fillRect(x-radius-edge, y-radius-edge, (edge+radius)*2, (edge+radius)*3);
switch(getTrafficSignal()) {
case 1:
board.setColor(Color.green);
break;
case 2:
board.setColor(Color.yellow);
break;
case 3:
board.setColor(Color.red);
}
board.fillOval(x-radius, y-radius, 2*radius, 2*radius);
board.drawString(String.valueOf(lightTime[getTrafficSignal()-1]-count), x,y+2*radius);
}
public void run() {
if(this.getWorkStatus() ==1) {
count++;
if(count==lightTime[getTrafficSignal()-1]) {
count=0;
switchSignal();
}
showLight();
}
}
}
uj5u.com熱心網友回復:
第二個代碼34行和42行那個image不用管(我上傳照片的時候上傳錯了)uj5u.com熱心網友回復:
點下日志第二行會自動定位到錯誤的地方啊,你除錯下看看-1是那里來的uj5u.com熱心網友回復:
怎么除錯呢?我調試還不太會
uj5u.com熱心網友回復:
你測驗程式都沒貼,光看這些看不出什么,先好好學學怎么問問題。
uj5u.com熱心網友回復:
怎么除錯呢?我除錯還不太會
點下日志第二行會自動定位到錯誤的地方啊,你除錯下看看-1是那里來的
你測驗程式都沒貼,光看這些看不出什么,先好好學學怎么問問題。
uj5u.com熱心網友回復:
怎么除錯呢?我除錯還不太會
點下日志第二行會自動定位到錯誤的地方啊,你除錯下看看-1是那里來的
運行程式用debug選單里面的而不是run選單里面的,遇到例外自動會掛起并跳到錯誤代碼的
uj5u.com熱心網友回復:
怎么除錯呢?我除錯還不太會
點下日志第二行會自動定位到錯誤的地方啊,你除錯下看看-1是那里來的
運行程式用debug選單里面的而不是run選單里面的,遇到例外自動會掛起并跳到錯誤代碼的
好的,我試試
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/70529.html
標籤:Eclipse
上一篇:jdbc連接資料庫


