Første
Applet (GUI) serie, Planche nr. 16
Kursus Indhold

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

Planche 3 : Et eksempel...

Hmm - Der mangler vist Java support

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:

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

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.

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 Hmm - Der mangler vist Java support 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:

   public static void main (String args[])