/* VälittääHTML-sivulta parametrina saadun tekstirivin appletin näytölle ajettavaksi. */ import java.awt.*; public class Varoitus extends javax.swing.JApplet implements Runnable { String text = "Tekstiä ei välitetty"; float hue = (float) 0.5; float saturation = (float) 0.8; float brightness = (float) 0.0; Font textFont = new Font("Dialog", Font.BOLD, 20); int textX; Thread runner; // Käynnistettävä säie public void init() { setBackground(Color.black); // Taustaväri String paramName = getParameter("TEXT"); // HTML-parametri if (paramName != null) // Jos parameti erisuu kuin tyhä niin text = paramName; // sijoita parametri tekstiin FontMetrics fm = getFontMetrics(textFont); // Perusta fonttia vastaava mitoitusmuuttuja textX = getSize().width / 2 - fm.stringWidth(text) / 2; // Laske tekstin koko } // Tulostaa näyttöruudun public void paint(Graphics screen) { Graphics2D screen2D = (Graphics2D) screen; // Kirkkausarvot muuttuvat koko ajan Color textColor = Color.getHSBColor(hue, saturation, brightness); // Määritä värimuuttuja RGB arvojen mukaan screen2D.setColor(textColor); // käsittele tulostusta 2D-muodossa screen2D.setFont(textFont); screen2D.drawString(text, textX, 30); } // Kutsutaan ruudun päivitysmetodia paint public void update(Graphics screen) { paint(screen); } // Luodaan pausemetodi, jossa määrätään kauanko säi runner huilaa. void pause(int kesto) { try { // thehdään aina jos vaan mahdollista. (Ei keskeytetty) Thread.sleep(kesto); } catch (InterruptedException e) { // TODO: Lisää keskeytysmetodit myöhemmin } } // Käynnistysmetodi säikeen Thread runner mukaan public void start() { if (runner == null) { // Säikeen luonti/käynnistys runner = new Thread(this); // this= On applettiin viittaava parametri Ei runner.start(); // esimerkiksi metodin säie. } } // Appletin pysäytysmetodi public void stop() { if (runner != null) { runner = null; } } // Appletin suorituksen käynnistysmetodi public void run() { Thread thisThread = Thread.currentThread(); while (runner == thisThread) { // ANIMAATION TOTEUTUSLOOPPI pause(35); // Uinumistauko millisekunteina brightness += 0.05; if (brightness > 1) { brightness = (float) 0.0; pause(75); } repaint(); // Päivitä ruutu uinumisen loputtua } } }