Første |
|
|
Applet (GUI) serie, Planche nr. 16 |
 |
Udskrift af : Applet (GUI)
|
Planche 1 : Applet (GUI)
Graphical User Interface.
Grafisk brugergrænseflade svarende til Windows,
OS/2 eller Mac.
Planche 2 : GUI-elementer
- Mus og tastatur
- Enkle elementer
- Tekster (Label)
- Knap (Button)
- Afkrydsning (Checbox)
- Trykknapper (Radiobutton)
- Datafelt (TextField)
- Redigeringsfelt (TextArea)
- Valgfelter (List)
- Avanceret
Planche 3 : Et eksempel...
Sådan en må vi også have ... Dagens øvelse!
(Klassedefinitionerne ligger i doks/Java-gui/example)
Planche 4 : Mus og tastatur
En speciel metode, som man kan overskrive og få alle hændelser i
Javaprogrammer (Event model version 1.02). Den kræver, at man selv finder
hvilken hændelse, der har fundet sted.
public bolean HandleEvent (Event e) {
... kig på e, for at se, om det var en hændelse du kan bruge
return true ; // hvis du har "brugt" eventet
..
return false ; // hvis du ikke har "brugt" eventet
}
Der er lavet metoder, der gør det enklere.
Det er specialiserede metoder:
-
action()
-
mouseEnter()
-
mouseExit()
-
mouseMove()
-
mouseDown()
-
mouseDrag()
-
mouseUp()
-
keyDown()
-
keyUp()
-
gotFocus()
-
lostFocus()
Tastaturtryk håndteres på tilsvarende måde.
Planche 5 : Hvad sker der:

Planche 6 : AWT-klasserne


For at vise et komponent, skal det tilføjes til en Container-klasse.
Det gøres ved metoderne add(). Applet-klassen er en udvidelse af
af Container-klassen.
Alle komponenter, undtagen menuer, er underklasser til
Component-klassen. Component-objekter håndtere alle tegnerutinerne, så
det behøver man ikke selv stå for. Derfor slut med paint(). Nu foregår
alt i applettens init();
AWT-kompenenterne implementerer mus og tastatur-hændelser med HandleEvent()
og specialhændelser. Nogle (knapper, menuer) bruger metoden action().
Ved at overskrive metoden får appletten kontrollen, når mus eller
tastatur bruges.
Planche 7 : Etiketter (Labels)
En anden måde at vise tekster på!
Oprettes med: Label b = new Label();
sæt tekst med: b.setText("Ny Text")
hent tekst med: String tekst = b.getText();
Start med opgave 4
Den fortsætter her bagefter....
Planche 8 : Knapper (Button)
AWT-knapper ligner altid operativsystemets knapper:

Metoden action() bruges til at signalere (modtage) et knaptryk
- Øvelse 4b:
- Lav en knap, der skifter teksten på etiketten!
- Tilføj en ny knap, der skifter teksten tilbage.
- Lav en knap, der skifter teksten på sig selv.
Tekster på en knap hedder labels,
ie. getLabel() og setLabel(String)
Planche 9 : Checkboks og Radioknap
Er det samme i AWT: Checkbox
Forskellen er, hvis et Checkbox-object oprettes med et objekt af typen
CheckBoxGroup som paramter, er det en radioknap.
Lav en Radioknap, så man vælger mellem flere tekster, der skal vises når 1. knap trykkes.
Planche 10 : Valgmenu (Choice)
(Kaldes ofte for dropdown-boxe i Windows)
De er i sig selv en Container-klasse, så de ting man vælger imellem skal
tilføjes til Choice-objektet - ikke til appletten.
- Øvelse 4d:
- Opret en valgmenu med en rækket tekster i.
- Opret en knap, som når man trykker på den, skriver hvad man har valgt i en etikette.
Planche 11 : Tekstfelter (TextField)
Også kendt som indatafelter.
Opret et indatafelt og en knap. Når man trykker på knappen vises det
indtastede i en etikette. Hent teksten fra inddatafeltet med metoden
getText();
Planche 12 : Redigeringsfelt (TextArea)
Tilføj et redigerinsfelt. Smid indholdet ud på java-konsollen
(metode: System.err.println(String))
Planche 13 : Rullemenuer (List)
Gentag øvelse 4d, men med en rullemenu istedet.
Planche 14 : Popup
Alle grafiske komponenter, vi har set indtil nu ligger på applettens område.
Vi vil nu lade den "springe ud" og køre selvstændigt, ligesom i
eksemplet
Lav en NY applet - KnapApp, der indeholder en knap. Når man trykker
på den, hopper den gamle applet i et nyt vindue.
Hint - "degrader" den gamle applet til en Frame, og opret den som objekt
i den nye klasse.
Planche 15 : Menuer
Menuer implementeres af en særlig gruppe klasser. De kan kun
tilføjes til objekter af typen Frame.
Tilføj en menulinie og en række menuer. Værdien Afslut lukker
popup-en
Planche 16 : Applikationer
Det er forholds enkelt at lave en Frame-afledt klasse om til en applikation:
- Tilføje den særlige metode main til klassen:
public static void main (String args[])
- Opret et objekt af klassen i main
- Set størrelsen af objektet (setSize())
- Vis den med setVisible(true)
© 1999 BLA*net - Leif E. Andersen,
leander@blanet.dk