Konularını kullanarak bir trafik ışığı semafor inşa etmeye çalışıyorum ama doğru olamıyorum.Semaphore renkler arasında mola ile kırmızı, sarı, yeşil göstermelidir. Herhangi bir yardım çok takdir edilmektedir. Teşekkürler. İşte bazı sorunlar var buradaTrafik ışığı semaphore iş parçacığı kullanarak
import java.awt.BorderLayout;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class StopTheLights extends JFrame implements ActionListener {
JButton start;
JButton stop;
JPanel panel;
Boolean flag;
public StopTheLights(String title) {
Container c = getContentPane();
start = new JButton("Start");
stop = new JButton("Stop");
start.addActionListener(this);
stop.addActionListener(this);
panel= new JPanel();
panel.add(start);
panel.add(stop);
c.add(panel, BorderLayout.SOUTH);
setSize(300, 450);
setVisible(true);
setLocation(200,200);
}
public void paint(Graphics g){
super.paint(g);
g.setColor(Color.black);
g.drawOval(50,50,100,100);
g.drawOval(50,155,100,100);
g.drawOval(50,260,100,100);
}
public void actionPerformed(ActionEvent e){
if(e.getSource() == start){
flag = true;
new ThreadExtend(this).start();
}else{
flag = false;
}
}
public class ThreadExtend extends Thread {
Graphics g;
JFrame frame;
public ThreadExtend(JFrame frame){
this.frame = frame;
g = frame.getGraphics();
}
public void run(){
while(flag) {
try{
paintRed(g);
if(!flag) {
break;
}
Thread.sleep(1000);
paintAmber(g);
if(!flag) {
break;
}
Thread.sleep(1000);
paintGreen(g);
if(!flag){
break;
}
}catch(InterruptedException e) {
}
}
}
}
public void paintRed(Graphics g){
g.setColor(new Color(255,0,0));
g.fillOval(52, 52, 96, 96);
g.fillOval(52, 52, 96, 96);
g.fillOval(52, 262, 96, 96);
}
public void paintAmber(Graphics g){
g.setColor(new Color(250,170,0));
g.fillOval(52, 157, 96, 96);
g.fillOval(52, 52, 96, 96);
g.fillOval(52, 262, 96, 96);
}
public void paintGreen(Graphics g){
g.setColor(new Color(0,250,0));
g.fillOval(52, 262, 96, 96);
g.fillOval(52, 52, 96, 96);
g.fillOval(52, 157, 96, 96);
}
public static void main(String[] args) {
new StopTheLights();
}
}
sorunu nedir? – jhamon