[prg] олимпиадная задача на языке java
Здравствуйте всем участникам рассылки! Знакомый студент попросил помочь
разобраться с кодом, написанным на java. Но познания у меня этого языка
скромные. Задача заключалась в следующем:
Описать класс, с названием светофор для пешихода с кнопкой, который
характеризуется временем, в течение которого горит сигнал и временем,
которое должно пройти с последнего включения, чтобы светофор заработал.
Класс позволяет: включить зелёный сигнал, если это возможно. Узнать
состояние светофора. Продемонстрировать работу с классом, реализовав
графический интерфейс.
В задаче я так понял 2 файла с классами: 1- это светофор, то есть он
проверяет статус и позволяет включить светофор, а второй- это класс, который
демонстрирует работу с этим классом. Ошибка в демоклассе. Вот код обоих
классов.
класс светофор:
package program;
import java.util.Date;
class svetofor {
private boolean status;
svetofor () {
status =false;
}
public void on(int d1){
Date a=new Date();
int d2=a.getSeconds();
if(d2-d1>=20) {
status=true;
d1=a.getSeconds();
}
else status =false;
if(d2-d1<20){
status=false;
d1=a.getSeconds();
}
else status =false;
if(d2-d1<20){
status=false;
d1=a.getSeconds();
}
else if(d2-d1>15){
status=true;
d1=a.getSeconds();
}
}
public boolean uznatstatus(){
return (status);
}
}
Класс-демопрограмма:
package program;
import java.io.*;
import java.util.Date;
import java.awt.*;
import java.awt.event.*;
public class program_svetofor implements ActionListener{
Button b1,b2,last;
Label l1;
public static void main(String[] args)throws IOException {
new program_svetofor();
}
program_svetofor();()throws IOException{
svetofor s;
s=new svetofor();
Date a=new Date();
int d1=a.getSeconds();
Frame f= new Frame("Светофор");
f.setBounds(200,200,300,200);
f.setVisible(true);
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent we){
((Window)we.getSource()).dispose();}});
b1=new Button("Включить зеленый");
b1.setBounds(20,30, 150, 30);
b1.setVisible(true);
f.add(b1);
b1.addActionListener(this);
b2=new Button("Состояние");
b2.setBounds(20,60, 150, 30);
b2.setVisible(true);
f.add(b2);
b2.addActionListener(this);
l1=new Label("Состояние: ");
l1.setBounds(20,90,200,30);
l1.setVisible(true);
f.add(l1);
last=new Button("");
last.setVisible(false);
f.add(last);
void actionPerformed(ActionEvent a){
if (a.getSource()==b1){if(s.uznatstatus()==true){s.on(d1);
l1.setText("Состояние: горит зеленый");}
else l1.setText("Состояние: горит красный");}
if (a.getSource()==b2){if(s.uznatstatus()==true)
l1.setText("Состояние: горит зеленый");}else
{l1.setText("Состояние: горит красный");}}
} в демопрограмме ругается на стороку public void
actionPerformed(ActionEvent a){
Почему я не могу понять. Пожалуйста помогите исправить ситуацию. Заранее
спасибо за помощь. С уважением Леонид.