Programmierung

Java-Applets


Allgemein


Applets ("little Applications") sind spezielle JAVA-Programme, die genauso wie JAVA-Applicationen compiliert werden und anschließend von Webbrowsern ausgeführt werden können. Dafür müssen sie in eine Webseite eingebunden werden.
    <Applet code="meinApplet.class" width="400" height="200"></Applet>
Der Applet-Code wird beim Aufruf der HTML-Seite durch den Browser geladen und in der JVM (Java Virtual Machine) des Browsers ausgeführt. Dabei laufen die Applets in einer sogenannten Sandbox. Das verhindert, das Applets Schaden auf dem Rechner anrichten. Innerhalb der Sandbox ist alles erlaubt, Aktionen außerhalb der Sandbox sind nicht möglich (wie Zugriffe auf das Dateisystem, Start von anderen Programmen etc.). 

  1. Ein einfaches Applet

    import java.applet.*;
    import java.awt.*; 
          // wird für Graphics benötigt!!
    public class halloapp extends Applet{ // von Applet abgeleitet
      public void paint(Graphics g) {
        g.drawString("Hallo Welt",180,100); // Text auf Oberfläche (Panel) zeichnen

      }
    }


    um das Applet zu starten  muss es, nach Compilierung, von einer HTML-Datei aufgerufen werden

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html>
      <head><title>Ein Applet  wird gestartet ...</title></head>
      <body>
        <h1 align="center">JAVA-Applets</h1>
        <Applet code="halloapp.class" width="400" height="200">
          JAVA ist nicht aktiv !
        </Applet>
      </body>
    </html> 

  2. Ein "komplettes" Applet

    import java.applet.*;
    import java.awt.*; 
          // wird für Graphics benötigt!!
    public class halloapp2 extends Applet{

      String
    parameter =null;

      // wird beim Ersten Start des Applets vom Browser aufgerufen
      // und dient der Initialisierung

      public void
    init() { 
        System.out.println("init()"); // Ausgabe auf Konsole

        parameter = getParameter("Breite");
      }

     
    // wird nach init() aufgerufen oder wenn das Applet wieder sichtbar wird
      public void
    start() { 
        System.out.println("start()"); // Ausgabe auf Konsole
      }

     
    // wird aufgerufen wenn die HTML-Seite verlassen wird
      public void
    stop() { 
        System.out.println("stop()"); // Ausgabe auf Konsole
      }

      // wird aufgerufen wenn der Browser geschlossen wird

      public void
    destroy() { 
        System.out.println("destroy()"); // Ausgabe auf Konsole
      }

      // gibt Informationen über das Applet zurück
      public String getAppletInfo(){
       
    return "Name   : xyz\n"
                +
    "Autor    : XYZ\n"
                +
    "Version: V1.0";
       }

      
    // wird nach init() aufgerufen oder wenn verdeckte Teile des Applets
       // (durch andere Fenster) wieder sichtbar werden  

     
      public void paint(Graphics g) {
        System.out.println("paint()"); // Ausgabe auf Konsol
        g.drawString("Hallo Welt",180,100); // Text auf Oberfläche zeichnen
      }
    }


     

  3. Übergabe von Parametern vom Browser zum Applet

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html>
      <head> <title>Ein Applet  wird gestartet ...</title></head>
      <body>
        <h1 align="center">JAVA-Applets</h1>
        <Applet code="halloapp.class" width="400" height="200">

          <PARAM name="text" value="Hallo Welt !">
        </Applet>
      </body>
    </html> 


    import java.applet.*;
    import java.awt.*;     
    public class halloapp extends Applet{
      String text=null;
      public void init() { 
        text = getParameter("text");
      }
      public void paint(Graphics g) {
        g.drawString(text,180,100);
      }
    }


  4. Applet mit Button

    import java.applet.*;
    import java.awt.*;
    import
    java.awt.event*;  // für actionPerformed, ActionListener
    public class
    halloapp3 extends Applet implements ActionListener{
      String text;
      Button btn;
      public void init() { 
        text = getParameter("text");
       
    btn = new Button("Start");
       
    add(btn);
        btn.addActionListener(this);
      }
      public void paint(Graphics g) {
        g.drawString(text,180,100); 
      }
      public void actionPerformed(ActionEvent ae){
        if (ae.getSource()==btn){
           text=
    "Der Button wurde gedrückt";
          
    repaint(); // Aufruf von paint(Graphics g)
     
      }
      }

    }

  5. Rechenintensives Applet in eigenem Thread

    Solange das Applet nur kurz Informationen in Form von  Bildern oder Textausgaben liefert und dann brav auf die nächste Anwender-Aktion wartet, haben auch andere Applets die Chance "Rechenzeit" zu bekommen.
    Wird aber z.B. ein sich drehender Würfel berechnet, Mandelbrot-Mengen oder sogar Echtzeit-Rendering durchgeführt, sollte das Applet in einem eigenen Thread ablaufen, damit andere Applets auch Rechenzeit abbekommen.


    import java.applet.*;
    import java.awt.*;      

    public class halloapp4 extends Applet implements Runnable{

      Thread
    thread;
      String parameter =null;

      // wird beim Ersten Start des Applets vom Browser aufgerufen
      // und dient der Initialisierung

      public void
    init() { 
        System.out.println("init()"); // Ausgabe auf Konsole
        parameter = getParameter("Breite");
      }

     
    // wird nach init() aufgerufen oder wenn das Applet wieder sichtbar wird
      public void
    start() { 
        System.out.println("start()"); // Ausgabe auf Konsole
        if (thread==null){
         
    thread=new Thread(this);
         
    thread.start(); // Thread starten
        }

      }

     
    // wird aufgerufen wenn die HTML-Seite verlassen wird
      public void
    stop() { 
        System.out.println("stop()"); // Ausgabe auf Konsole
          thread=null; // Thread beenden
      }

      // wird aufgerufen wenn der Browser geschlossen wird

      public void
    destroy() { 
        System.out.println("destroy()"); // Ausgabe auf Konsole
      }

     
    public void run(){
       
    while (thread!=null){
         
    try{
           
    thread.sleep(500); //setzte die Abarbeitung des Applets für 500ms aus
          }
    catch(InterruptedException ie){
            System.out.
    println("InterruptedException");
          }
          // hier steht der rechenintensive Applet-Code
          // ....
        }
      }

     
    // gibt Informationen über das Applet zurück
      public String getAppletInfo(){
       
    return "Name   : xyz\n"
                +
    "Autor    : XYZ\n"
                +
    "Version: V1.0";
       }

      
    // wird nach init() aufgerufen oder wenn verdeckte Teile des Applets
       // (durch andere Fenster) wieder sichtbar werden  

     
      public void paint(Graphics g) {
        System.out.println("paint()"); // Ausgabe auf Konsol
        g.drawString("Hallo Welt",180,100); // Text auf Oberfläche zeichnen
      }
    }


Beispiel-Applets

  1. Das Streichholzspiel



  2. Java nicht aktiv! Anzeige nicht möglich!

    Download Streichholz.zip

  3. Das Lotto-Spiel

    Aufgabe: Lotto spielen ...

    Java nicht aktiv! Anzeige nicht möglich!

    Download Lotto.zip

  4. Datum-Applet

    Aufgabe: Ausgabe des aktuellen Datums.

    Java ist nicht aktiv!

    Download Datum.zip

  5. getJVM

    Aufgabe: Ausgabe der installierten Java-Laufzeitumgebeung

    Java ist nicht aktiv!

    Download getJVM.zip

  6. Ureg

    Aufgabe: Spannungsteiler für Spannungsregler LT1086, LM317 o.ä. berechnen.















    Download Ureg.zip

  7. Sonne

    Aufgabe: Ausgabe von Sonnendaten für die Photovoltaik.

    Java nicht aktiv! Anzeige des Applets nicht möglich!
















http://www.counter-service.de http://www.counter-service.de
Home
uebermich
Programmierung
Amateurfunk
Elektronik
Download
Links
E-Mail
Gästebuch/Meckerecke
Counter-DG1XPZ