import java.awt.*;        // Paket osnovnih klasa za GUI programiranje.
import java.awt.event.*;  // Paket klasa za rad s dogadajima.
import java.applet.*;     // Paket s Applet kalsom.
     
public class ColoredHelloWorldApplet
          extends Applet implements ActionListener {
                          
     
        int brojBoje;   // Sadrži podatak o boji koju želimo koristit za prikaz poruke;
                        //  1 za crvenu, 2 za plavu, 3 za zelenu.
                          
        Font tekstFont; // Font kojim želimo prikazat poruku.
                        // Font objekt predstavlja odreden stil iscrtavanja teksta na ekran.

        
        public void init() {
     
               // Ovaj podprogram poziva sistem, za inicijalizaciju apleta.
               // Postavlja boju pozadine apleta, font i pocetnu boju poruke.
               // Dodaje ekransku tipku apletu za promijenu boje pruke.
               
            setBackground(Color.yellow);
               // Postavlja se boja pozadine apleta prije nego što se pozove paint() metoda.
                    
            brojBoje= 1;   // Postavljena je crvena boja poruke.
            
            tekstFont = new Font("Serif",Font.BOLD,16);
               // Kreira objekt tipa Font koji predstavlja veliki zadebljani font.
     
            Button bttn = new Button("Promijeni boju");
               // Kreira novi objekt Button. "Promijeni boju" je tekst koji se ispisuje na ekranskoj tipci.
 
            bttn.addActionListener(this);  
               // Postavlja bttn tako da šalje "action event" apletu kada korisnik klikne na ekransku tipku.
               // Parametar this je ime za aplet objekt koji kreiramo.
                    
            add(bttn);  // Dodaje ekransku tipku apletu, tako da se prikaže na ekranu
     
        }  // kraj init() metode
        
        
        public void paint(Graphics g) {
              
              // Ovj podprogram poziva sistem kada treba prikazat sadržaj apleta
              // Prikazuje poruku "Hello World" u odgovarajucoj boji i fontu.
     
           switch (brojBoje) {         // Postavi boju.
              case 1:
                 g.setColor(Color.red);
                 break;
              case 2:
                 g.setColor(Color.blue);
                 break;
              case 3:
                 g.setColor(Color.green);
                 break;
           }
           
           g.setFont(tekstFont);       // Postavi font.
           
           g.drawString("Hello World!", 10,50);    // Ispiši ovu poruku.
     
        }  // kraj paint() metode
        
     
        public void actionPerformed(ActionEvent evt) {
        
           // Ovaj potprogram poziva sistem kada korisnik klikne na ekransku tipku.
           // Reakcija je promjena vrijednosti varijable brojBoje koja odreduje boju poruke,
		   //	i poziv repaint() metode da bi se aplet iscrtao s novim vriejdnostima.
              
           if (brojBoje == 1)       // Promijeni brojBoje.
              brojBoje = 2;
           else if (brojBoje == 2)
              brojBoje = 3;
           else
              brojBoje = 1;
 
           repaint();  // Kaže sistemu da aplet treba biti ponovno iscrtan
           
        }  // kraj init() metode
        
}  // kraj klase
