Første
Oversigt
Java Foundation Classes serie, Planche nr. 35
Print af Java Foundation Classes
1 : Java Foundation Classes
Abstract Windows Toolkit (AWT)
java.awt.*
Swing-biblioteket
javax.swing.*
2 : JFC begreber
Komponenter og containerhieraki
Layout-managers
Event-håndtering
Skærmtegning
Tråde
3 : Komponenter og containerhieraki
Visuelle skærmelementer kaldes komponenter.
Komponenter er klasser
Kompenent-klasser er nedarvet fra java.lang.Component
Det er knapper, etiketter, indtastningsfelter, mv.
Containere er komponenter, der:
Indeholder andre komponenter
er nedarvet fra java.lang.Container
er vinduer, menuer, applets, paneler, mv.
4 : Layout-manager
En java-specialitet
5 : Event-håndtering
tastaturt
mus
øvrige system
andre programmer
6 : En Swing-applikation
En grundlæggende ramme (JFrame)
3 muligheder: JFrame, JWindow og JApplet
"Tunge" komponenter
En flade eller panel (eng: panel / pane) (JPanel)
Styrer placeringen af:
En knap (JButton)
En etiket (JLabel)
7 : Container-hierakiet
8 : Opbygning af billede
Opret med
new
Tilføj med
add()
-metoder
9 : Opgave 4a
Opret en ny opgavefolder JavaOpg4
Skriv en klasse, SwingApplet.java, der nedarver fra javax.swing.JApplet.
Opret variable, der peger på alle komponentobjekter
Skriv en public init() metode, som opretter og tilføjer komponenterne
Hint: Tidligere planche, men uden JFrame!
Skriv en HTML-fil, SwingApplet.html, til at køre appletten
"Klip" evt. HTML-fil fra tidligere opgaver og ret klassenavne.
10 : JApplet vs. Applet?
Brug JApplet
når man arbejder med Swing-komponenter
dvs. J-klasser
Brug Applet
ved simpel grafik
rene AWT-komponenter
Aldrig
samtidig!
11 : Layout-managers
12 : Hvor?
13 : Opgave 4b
Prøv
FlowLayout()
GridLayout()
BorderLayout()
Og
Hvad sker der, når man sætter null istedet for en layoutmanager?
14 : Uden layoutmanager!
setBoundary(int, int, int, int)
15 : Hjælpetekster
setToolTipText(String)
16 : Objekt kommunikation
Beskeder (alm. metoder)
Hændelser ("events")
Undtagelser ("Exceptions")
17 : Hændelser ("Events")
Museklik,
Tastaturtryk,
Kompenentaktivering
18 : 2 modeller
Eventmodel 1.0
"Vandfaldsmetoden" ~ Windows-modellen
Eventmodel 1.1
"Abonnementsmetoden"
19 : Eventmodel 1.1
Objektet, der modtager hændelsen
f. eks. en knap
Hændelseslytteren ("Event Listener")
modtager hændelser af en bestemt type, f.eks. fra musebevægelser
20 : Event klasser
V.1.0: Én hændelsesklasse
java.awt.Event
V.1.1: En pakke hændelsesklasser:
java.awt.event.*;
21 : Implementer V.1.1
1. Beslut hvilken hændelser, man ønsker at bruge
2. Skriv kode for lyttermetoden
3. Registrer lytteren.
22 : Eksempel - Trin 1
23 : Eksempel - trin 1 (fortsat)
ActionListener
MouseListener
MouseMotionListener
KeyListener
24 : Eksempel: Trin 2
Lad appletten (eller applikationsklassen) implementere:
class MinKlasse
implements
Lytterinterface
Overskriv metoderne fra lytterklassen.
Udvid event-klasserne og overskriv metoderne heri.
Mest velegnet til store programmer med mange klasser
25 : Eksempel: Trin 2 (Eksempel)
26 : Eksempel: Trin 3
Hvis klassen selv er lytter:
kald tilføjelses-metode med
this
Hvis man har lavet en lytterklasse
kald tilføjelses-metoden med et objekt af klassen
27 : Eksempel: Trin 3 (fortsat)
Klassen selv lytter:
addActionListener (this);
MinActionListener er defineret
ml = new MinActionListener();
addActionListener(ml);
28 : Simpel eventhåndtering
29 : Opgave 4c
Bruge metode 1 (SwingApplet er lytterklassen)
30 : Genvejstaster
setMnemonic(bogstav)
hvor bogstav er at type char eller int.
31 : SwingSet-demo
Åben Dos-box
gå til c:\jdk1.2\demo\jfc\SwingSet
skriv:
java SwingSet
32 : Applikationer
33 : Applet -> JFrame
34 : JFrame -> Application
Tilføje den særlige metode main til klassen:
Opret et objekt af klassen i main
Set størrelsen af objektet (setSize())
Vis den med setVisible(true)
35 : Kør!
Skriv: appletviewer SwingApplet.html
og
Skriv: java SwingApplet
© 1999 BLA*net - Leif E. Andersen, leander@blanet.dk