 
 
 
Inhalt Es geht um die Programmierung von Applets, das Zeichnen von Graphiken, Parameterübergabe. (Zu Animation und Threads, die man für die Animation braucht, kommt später, falls noch Zeit ist, genaueres.)
Literatur: Die Rohinformation zu diesem Abschnitt bieten die Klassen aus dem Paket java.applet und aus java.awt.Graphics. Dazu Kapitel 7 aus [Fla99b], Kapitel 6 aus dem alten [Fla97b], Kapitel 4 aus [Fla97a] oder Kapitel 7 aus [LL97].
| Allgemeines | 
<PARAM>-tags
 
| Object => Component => Container => Panel => Applet | 
| Wichtige Methoden bei Applets | 
Name Ausführung bei typische Verwendung init() Laden des Applets Initialisierung, Parameterübergabe. Funktion ähnlich einem Konstruktor destroy() Unload Recourcenfreigabe start() Sichtbar-werden Malen, Starten der Animation stop() Unsichtbar-werden Unterbrechen der Animation getAppletInfo() Darstellbar in Dialogboxen getParameterInfo() Parameter des Applets Aus Oberklassen (Object => Component => Container => Panel => Applet) repaint(_) (Component), ruft update auf, welches den Bildschirm löscht und paint aufruft paint(Grapics) Malen (Container) print(Graphics) 
Table 5: Wichtige Methoden ``an'' Applets
| Applets-Lebenszyklus | 
import java.awt.Graphics;
public class Lebenszyklus extends java.applet.Applet {  
  StringBuffer buffer = new StringBuffer();
  
  public void init () {resize(500, 20);addItem("Initializing...");};
  public void start (){addItem("Starting ...");};
  public void stop(){addItem("Stop...");};
  public void destroy(){addItem("preparing for unloading");};
  public void addItem(String meldung) {
    System.out.println(meldung);
    buffer.append(meldung);
    repaint();
  };
  public void paint(Graphics g) {
      g.drawRect(0,0,getSize().width -1, getSize().height -1); 
      // size deprecated in 1.2
    g.drawString(buffer.toString(), 5, 15);
  };
};
    
 | Häufig in Applets verwendete Methoden | 
Image getImage(URL) Laden von Bildern String getParameter(String) für Parameterübergabe aus HTML-Seite URL getDocumentBase() Url der HTML-Seite URL getCodeBase() Url der Klasse ... 
Table 6: In Applet definierte Methoden (Auswahl)
| Appletparameter | 
<applet code=myclass.class width=200 height=200> <param name="bild" value="meinbild.gif"> .... </applet>
| Applets als Stand-alone Programme | 
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class StandaloneScribble extends Applet {
  public static void main (String[] args) {
    Frame f = new Frame(); 
    Applet a = new StandaloneScribble();
    f.add(a, "Center");
    a.init();
    f.setSize(400, 400);
    f.show();            // show l"a"st einen Frame erscheine
    f.setBackground(bgcolor);
    f.addWindowListener(new WindowAdapter() {
      public void windowClosing(WindowEvent e) {
   System.exit(0);};
    });
  };                          // end of main
  public void init() {         // auch als applet verwenbar
    this.addMouseListener(new MouseAdapter() {
      public void mousePressed(MouseEvent e) {
        lastx = e.getX();            //
        lasty = e.getY();
      };
    });
    
    this.addMouseMotionListener(new MouseMotionAdapter() {
      public void mouseDragged(MouseEvent e) {
        Graphics g = getGraphics ();
        int x = e.getX();
        int y = e.getY();
        g.setColor(StandaloneScribble.this.drawcolor);  
 // wiederum: this alleine geht nicht!
        g.drawLine(lastx, lasty, x, y);
        lastx = x; lasty = y;
      };
    });   
    
    Button b = new Button("Blau");
    b.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        drawcolor = Color.blue;
      };
    });
    this.add(b);
  };
  
  protected int lastx, lasty;
  protected static Color bgcolor   = Color.white;   
  protected Color drawcolor = bgcolor;   
};
 | Graphik-Objekte | 
Figure 1: Koordinatensystem
| Graphische Elemente: Fonts, Farben & Cursor | 
 
 
