Minggu, 14 September 2025

JAVA - Traffic Light

 



File : GUIGen.java

package gui;

import java.awt.Container;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.Box;

import javax.swing.JButton;

import javax.swing.JFrame;

/**

*

* @author ajb

*/

public class GUIGen extends JFrame implements ActionListener{

    GenPanel panel = new GenPanel();

    JButton stop;

    JButton go;


    GUIGen(){

        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        this.setSize(300,300);

        this.setLocationRelativeTo(null);


        Container vert = Box.createVerticalBox();

        Container hoz = Box.createHorizontalBox();

        stop = new JButton("Stop");

        go = new JButton(" Go ");

        stop.addActionListener(this);

        go.addActionListener(this);


        hoz.add(stop);

        hoz.add(go);

        vert.add(panel);

        vert.add(hoz);


        this.add(vert);

        this.setVisible(true);


    }


    /**

    * @param args the command line arguments

    */

    public static void main(String[] args) {

        // TODO code application logic here

        new GUIGen();

    }

    @Override

    public void actionPerformed(ActionEvent ae) {


        if(ae.getSource()==stop) {

            panel.setRed();

        }

        if(ae.getSource()==go) {

            panel.setGreen();

        }

        repaint();

    }

}

========================================



File : GenPanel,java

package gui;

import java.awt.Color;

import java.awt.Graphics;

import java.awt.Graphics2D;

import javax.swing.JPanel;

public class GenPanel extends JPanel {


    Color light = Color.RED;


    public void setRed() {

        light = Color.RED;

    }


    public void setGreen() {

        light = Color.GREEN;

    }


    @Override

    protected void paintComponent(Graphics g) {

        super.paintComponent(g);

        Graphics2D g2 = (Graphics2D) g;


        g2.setColor(Color.BLACK);

        g2.fillRect(100, 10, 100, 100);

        g2.setColor(light);

        g2.fillOval(100,10,100,100);

    }

}


Tidak ada komentar: