ghifariastaudi

Untitled

Oct 19th, 2020
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.18 KB | None | 0 0
  1.  
  2. /**
  3.  * Write a description of class PanelLampuLaluLintas here.
  4.  * Merupakan Class untuk menampilkan lampu lalu lintas
  5.  * @Ghifari Astaudi' Ukumullah
  6.  * @19 Oktober 2020
  7.  */
  8. import java.awt.*;
  9. import javax.swing.*;
  10. import java.awt.event.*;
  11.  
  12. public class PanelLampuLaluLintas extends JPanel {
  13.     int time_ = 20; // inisiasi waktu LampuLL
  14.     int tanda = 1;
  15.     int keadaan = 0;
  16.    
  17.     //Pemanggilan Class LampuLL untuk tampilan warna rambu
  18.     LampuLL hijau = new LampuLL (Color.green);
  19.     LampuLL kuning = new LampuLL (Color.yellow);
  20.     LampuLL merah = new LampuLL (Color.red);
  21.     //Pemanggilan Class TestTimer
  22.     TestTimer waktu = new TestTimer();
  23.    
  24.     public PanelLampuLaluLintas(int t){
  25.         time_ = t;
  26.         setLayout(new GridLayout(4,1));  
  27.         //set lampu merah dulu
  28.         hijau.turnON(false);
  29.         kuning.turnON(false);
  30.         merah.turnON(true);
  31.         waktu.setValue (time_);
  32.         //menampilkan rambu lalu lintas
  33.         add(merah);
  34.         add(kuning);
  35.         add (hijau);
  36.         //menampilkan waktu
  37.         add (waktu);
  38.        
  39.         Timer Timer1 = new Timer (1000, new ActionListener(){
  40.             @Override
  41.             public void actionPerformed (ActionEvent e){
  42.                 int waktutersisa = time_ - tanda; // awal perhitungan mundur -1
  43.                 if (waktutersisa <=0){
  44.                     tanda = 0; //waktu habis
  45.                     keadaan ++;
  46.                     ubahrambu(keadaan);
  47.                 }
  48.             waktu.setValue (time_ - tanda); // mengurangi waktu
  49.             tanda++;
  50.         }
  51.     });
  52.         Timer1.setRepeats(true);
  53.         Timer1.setCoalesce(true);
  54.         Timer1.start();
  55.     }
  56. // untuk mengubah integer menjadi boolean
  57.     private boolean cekkeadaan(int state){
  58.         if (state %3 > 0){
  59.             return false;
  60.         }
  61.         else {
  62.             return true;
  63.         }
  64.     }
  65.  
  66.     private void ubahrambu (int state){ //rubah rambu lalu lintas
  67.         hijau.turnON (cekkeadaan(keadaan+2));
  68.         kuning.turnON (cekkeadaan(keadaan+1));
  69.         merah.turnON (cekkeadaan(keadaan));
  70.     }
  71.    
  72.     private void setDuration(int t){    
  73.         time_ = t;
  74.     }
  75. }
Add Comment
Please, Sign In to add comment