java3 - Fachbereich Maschinenbau - FH

Werbung
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:
Kurz zum Aufbau von JavaScript:
Dateien in JavaScript werden zusammen mit dem HTML-Dokument übertragen und vom
Browser ausgeführt.
JavaScript ermöglicht eine echte Programmierung.
Zur Laufzeit kann dynamisch auf Anwenderaktionen reagiert werden.
Der Aufbau von JavaScript:
HTML-Datei:
<head>
...
<script language="JavaScript">
...
</script>
</head>
...
<body>
...
Handlerfunktionen
...
</body>
___________________________________
Arbeitsblätter zur VL OOP; Java 3
Seite 6
Ein Beispiel:
<html>
<head>
<title>JavaScript-Beispiel</title>
<script language="JavaScript">
<!-function Meldung(MeldeText)
{
if(navigator.appCodeName=="Mozilla")
{
alert(MeldeText);
window.status=document.lastModified;
}
}
//-->
</script>
1)
2)
3)
4)
5)
</head>
<body onLoad="Meldung('Dieses Dokument enthält JavaScript !')">
<a href="javascript.txt" onMouseOver="window.status='Klick mich an !';return
true">Quelltext</a>
</body>
</html>
6)
7)
1) in JavaScript gibt es keine Typdeklaration für Variablen. Das Programm erkennt den
Datentyp selbst.
2) Object Navigator; Eigenschaft appCodeName, Ist bei Netscape und IE Mozilla
3) Alert ist eine Methode des Objektes Windows. Mit alert wird ein einfaches Dialogfenster
ausgegeben.
4) Statuszeile wird gesetzt angezeigt wird die letzte Änderung des Dokumentes
5) Ende des JavaScriptteiles
6) Ereignishandler; Funktion Meldung wird aufgerufen beim Laden (onLoad)
7) OnMouseOver bewirkt hier die Änderung der Statuszeile
Scripte als Appletmotor
1) Erzeugen des Java-Programmes
Innerhalb des Programmes muss eine Methode geschrieben werden, die eine Variable enthält,
auf die mittels JavaScript reagiert werden kann.
Anschließend muss reragiert werden; z.B. Neuzeichnen mit neuen Werten;
Beispiel Ampel:
Hier ändert sich die Ampelfarbe immer bei Überstreichen des grünen, gelben oder roten
Links:
___________________________________
Arbeitsblätter zur VL OOP; Java 3
Seite 7
//Ampel
import java.applet.*;
import java.awt.*;
public class ampel extends Applet
{
int meine_lampe=0;
public void paint(Graphics g)
{
g.setColor(Color.white);
g.fillOval(5,5,40,40);
g.fillOval(5,55,40,40);
g.fillOval(5,105,40,40);
switch(meine_lampe)
{
case 1:
g.setColor(Color.red);
g.fillOval(5,5,40,40);
break;
case 2:
g.setColor(Color.yellow);
g.fillOval(5,55,40,40);
break;
case 3:
g.setColor(Color.green);
g.fillOval(5,105,40,40);
}
Übergebener
Parameter
}
public void setLampe(int nr) // public, da von javascript benutzt
{
meine_lampe=nr; // Variable, die gesetzt wird
repaint(100L);
// Reaktion mit Verzögerung von 0,1 sec
}
}
2) Die HTML-Datei erzeugen:
Hier funktioniert die Ampel mit JavaScript:
<html>
<head>
<title>Ampel</title>
</head>
<body>
Hier funktioniert die Ampel mit JavaScript: <p>
<hr>
<applet codebase=klassen
code="ampel.class"
name=A1
width=150
hight=150>
___________________________________
Arbeitsblätter zur VL OOP; Java 3
Variable wird
zugewiesen
Seite 8
</applet>
<hr>
<a href="ampel.java" onMouseOver="document.A1.setLampe(1)">Rot</a><p>
<a href="ampel.java" onMouseOver="document.A1.setLampe(2)">Gelb</a><p>
<a href="ampel.java" onMouseOver="document.A1.setLampe(3)">Gruen</a><p>
</body>
</html>
___________________________________
Arbeitsblätter zur VL OOP; Java 3
Seite 9
Herunterladen