Previous Contents Next

7   Applets und Graphik

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


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)   Drucken

Table 5: Wichtige Methoden ``an'' Applets


Applets-Lebenszyklus
Beispiel 20  

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


Die Klasse Applet stellt auch Methoden zur Verfügung, die man häufig in Applets brauchen kann.


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


Applets als Stand-alone Programme


Beispiel 21  [Standalone Applet]   Erweitert (und vereinfacht) aus [Fla97a]

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
July 4, 2000
Previous Contents Next