Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Write a description of class PanelLampuLaluLintas here.
- * Merupakan Class untuk menampilkan lampu lalu lintas
- * @Ghifari Astaudi' Ukumullah
- * @19 Oktober 2020
- */
- import java.awt.*;
- import javax.swing.*;
- import java.awt.event.*;
- public class PanelLampuLaluLintas extends JPanel {
- int time_ = 20; // inisiasi waktu LampuLL
- int tanda = 1;
- int keadaan = 0;
- //Pemanggilan Class LampuLL untuk tampilan warna rambu
- LampuLL hijau = new LampuLL (Color.green);
- LampuLL kuning = new LampuLL (Color.yellow);
- LampuLL merah = new LampuLL (Color.red);
- //Pemanggilan Class TestTimer
- TestTimer waktu = new TestTimer();
- public PanelLampuLaluLintas(int t){
- time_ = t;
- setLayout(new GridLayout(4,1));
- //set lampu merah dulu
- hijau.turnON(false);
- kuning.turnON(false);
- merah.turnON(true);
- waktu.setValue (time_);
- //menampilkan rambu lalu lintas
- add(merah);
- add(kuning);
- add (hijau);
- //menampilkan waktu
- add (waktu);
- Timer Timer1 = new Timer (1000, new ActionListener(){
- @Override
- public void actionPerformed (ActionEvent e){
- int waktutersisa = time_ - tanda; // awal perhitungan mundur -1
- if (waktutersisa <=0){
- tanda = 0; //waktu habis
- keadaan ++;
- ubahrambu(keadaan);
- }
- waktu.setValue (time_ - tanda); // mengurangi waktu
- tanda++;
- }
- });
- Timer1.setRepeats(true);
- Timer1.setCoalesce(true);
- Timer1.start();
- }
- // untuk mengubah integer menjadi boolean
- private boolean cekkeadaan(int state){
- if (state %3 > 0){
- return false;
- }
- else {
- return true;
- }
- }
- private void ubahrambu (int state){ //rubah rambu lalu lintas
- hijau.turnON (cekkeadaan(keadaan+2));
- kuning.turnON (cekkeadaan(keadaan+1));
- merah.turnON (cekkeadaan(keadaan));
- }
- private void setDuration(int t){
- time_ = t;
- }
- }
Add Comment
Please, Sign In to add comment