Fachhochschule Stralsund Fachbereich Maschinenbau Lehrgebiet Informatik Prof. Dr.-Ing. Ch.Wahmkow Arbeitsblätter für die Lehrveranstaltung OOP JAVA 3 III. Applets und JavaScript Das Applet-Tag: <APPLET codebase = URL oder Pfad der Klassen code = Applet-Datei alt = Text name = Instanzname width = Appletbreite height = Applethöhe align = Ausrichtung vspace = Abstand vertikal hspace = Abstand horizontal <PARAM name=Attribut value=Wert> </APPLET> Einbindung in einen HTML-Text: <HTML> <HEAD> <TITLE> Hallihallo </TITLE> </HEAD> <BODY> Dies ist das neue Applet:<P> <APPLET codebase=klassen code="applet02.class" width = 100 height = 150 > <param name=MeinName value="Cool and fresh!"> </APPLET> </BODY> </HTML> Und hier der Java-Quelltext des Applets mit Parameterübergabe: import java.applet.Applet; import java.awt.Graphics; public class applet02 extends Applet { String s; public void init() { s = getParameter("MeinName"); } public void paint (Graphics g) { g.drawString(s, 50,50); } } ___________________________________ Arbeitsblätter zur VL OOP; Java 3 Seite 1 Die Methode g.setColor(Color.blue); aus der Graphics-Klasse wählt die Zeichenfarbe. Die Klasse Color definiert folgende Farben als public, final und static: black blue cyan darkGray gray green lightGray magenta orange pink red white yellow schwarz blau Zyan dunkelgrau grau grün hellgrau magenta orange pink rot weiß gelb Eigene Farben werden mit dem Konstruktor Color definiert. Ihm wird dabei ein RGB-Tripel zugewiesen (RGB=Rot, Grün, Blau): color(R, G, B); Hier einige Beispiele für selbst definierte Farben: color(127, 127, 127) color(255,0,0) color(0,0,255) color(255, 255, 255) hellgrau rot blau weiß weitere Anwendung: ... Color rColor; // Ein Objekt der Klasse Color wird definiert rColor=new Color(127,255,0); // Das Objekt wird initiiert g.setColor(rColor); // und die Farbe für den aktuellen Gerätekontext g gesetzt ... Beispiel: // Zeichnet farbige Zufalls-Rechtecke import java.applet.Applet; import java.awt.*; public class g extends Applet { int h, w; int rOben, rLinks, rHoehe, rBreite, nRec; Color rColor; ___________________________________ Arbeitsblätter zur VL OOP; Java 3 Seite 2 public void init() { Dimension d = size(); h = d.height; w = d.width; String s = getParameter("Anzahl"); if (s != null) nRec = Integer.valueOf(s).intValue(); } public int Randomize(int p) { double r; r = Math.random(); return (int) (r*p); } // Methodenname ist frei wählbar public void paint(Graphics g) { g.setColor(Color.blue); //umschliesst das gesamte Rechteck g.drawRect(0, 0, w-1, h-1); for (int i=0; i<nRec; i++) { rOben = Randomize(h); rLinks = Randomize(w); rHoehe = Randomize(h-rOben); rBreite = Randomize(w-rLinks); rColor = new Color(Randomize(255), Randomize(255), Randomize(255)); g.setColor(rColor); //Rechteck von zuf„lliger Gr”áe g.fillRect(rOben, rLinks, rBreite, rHoehe); } } } Dazu die HTML-Datei: <html> <head> <title>Farbige Rechtecke</title> </head> <body> Hier werden Rechtecke gezeichnet: <p> <applet codebase=klassen code="farbeck.class" width=320 hight=240> <param name=anzahl value=5> </applet> </body> </html> Die Variablen der Klasse Event: Ereignis ACTION_EVENT ALT_MASK CTRL_MASK DOWN END Beschreibung ein Action-Event Alt-Taste Control-Taste Pfeiltaste unten Ende-Taste ___________________________________ Arbeitsblätter zur VL OOP; Java 3 Seite 3 ESC F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 gotFocus home keyAction keyPress keyRelease loadFile lostFokus mouseDown mouseDrag mouseEnter mouseExit mouseMove mouseUp saveFile WINDOW_DEICONIFY WINDOW_DESTROY WINDOW_EXPOSE WINDOW_ICONIFY WINDOW_MOVED arg evt id key modifiers target when x y Escape-Taste F1-Taste F2-Taste F3-Taste F4-Taste F5-Taste F6-Taste F7-Taste F8-Taste F9-Taste F10-Taste F11-Taste F12-Taste Komponente erhält den Fokus Home-Taste Tastatur-Event Taste gedrückt Taste losgelassen Datei wird geladen Komponente verliert den Fokus Maustaste gedrückt Maus bei gedrückter Taste bewegt Maus über Applet Maus verlässt Applet Maus bewegt sich Maustaste losgelassen Datei wird gespeichert Fenster wird vergrößert Fenster wird zerstört Fenster wird sichtbar Fenster wird zum Icon Fenster wird bewegt willkürliches Argument der nächste Event die Art des Events gedrückte Taste in einem Tastatur-Event Zustand der Sondertasten die Zielkomponente die Uhrzeit des Events die x-Koordinate des Events die y-Koordinate des Events ___________________________________ Arbeitsblätter zur VL OOP; Java 3 Seite 4 Die wichtigsten Kontrollelemente: Bezeichnung Button CheckboxGroup Checkbox Label List Scrollbar TextField TextArea Funktion Schaltfläche Auswahlgruppe Auswahlmöglichkeit festes Textfeld Auswahlliste mit Scrollbalken Schieberegler Eingabefeld mehrzeiliges Eingabefeld Anwendungsbeispiel: Deklaration: (innerhalb des Applets) private List liste = new List (5,false); //Eine neue Auswahlliste mit 5 Anzeigelementen wird definiert, wobei immer nur ein Element gültig ist (false) Initialisieren der Elemente in init() oder im Konstruktor: liste.addItem(„1.Eintrag“,1); // Eintragen der Listenwerte liste.addItem(„2.Eintrag“,2); ... liste.select(0); // Auswahl des 1. Listenelementes add(liste); // Liste dazu addieren liste.makeVisible(0); // Liste mit Eistellung auf 1. Element anzeigen auswerten der Ereignisse in handleEvent oder action: if (evt.id==evt.LIST_SELECT){...} Fenster: import java.awt.*; import java.applet.*; public class schalter extends Frame { String text=new String(""); public schalter() //Konstruktor { super("Das Superfenster"); pack(); resize(400,200); Panel p=new Panel(); p.add(new Button("Hallo")); //Deklaration und Initialisieren des Buttons im Konstruktor add("South",p); show(); } public boolean handleEvent(Event evt) // Auswerten der Ereignisse { ___________________________________ Arbeitsblätter zur VL OOP; Java 3 Seite 5 if("Hallo".equals(evt.arg)){ text="Hallo gedrueckt"; repaint(); } // Text ausgeben if(evt.id==Event.WINDOW_DESTROY){ dispose(); System.exit(0);} return true; } // Fenster schließen // schließt das Fenster public void paint(Graphics g) { g.drawString(text,20,20); } public static void main(String args[]) // Durch diese Methode laüft das Applet auch als Anwendung // ohne einen Browser; Start: java schalter { new schalter(); } } Probieren Sie selbst viel herum; durch eigene Fehler lernt man am besten !!! JavaScript: ___________________________________ Arbeitsblätter zur VL OOP; Java 3 Seite 6