AWT - Abstract Window Toolkit

Component Det grundläggande byggblocket i AWT. En Component är något som kan synas på skärmen och ritas på.
Canvas En Component man själv kan ärva.
Container En Component som kan innehålla andra Components. Hur dessa Components visas bestäms av Containerns LayoutManager
Panel En Container man själv kan ärva.
Graphics Representerar ett område på skärmen man kan rita på. Varje Component som är synliga har en Graphics, man kan få fram med getGraphics(). Skickas också med omritnings metoderna paint() och update().
Window, Frame, DialogWindow Olika typer av fönster som dessutom är Containers.
Button, Checkbox, Choice, Label, Scrollbar, TextField, TextArea Färdiga Components för vanliga användargränspryttlar. Ej implementerade i java, se Peer
Event Händelser, såsom musrörelser, tangenttryckningar, val i användarpryttel mm rapporteras med klassen Event. Ett Event skickas först till den Component där händelsen utspelade sig. Om Componenten inte är intresserad skickas Eventet vidare till dess Container. Vill Containern inte ha Eventet skickas det vidare till dess Container osv tills alla Containers har betats av.
Image Bildhantering. Image är en bild, eller en bild som kan/håller på att läsas in från nätverket. Ett interface, ImageObserver, talar om när ännu en bit av bilden laddats ner. Component är en ImageObserver, och sköter allt krångel då man ska rita upp bilden vartefter den dyker upp.
Menubar En menyrad, återfinns på Frames.

Graf över klassbiblioteket

Rödmarkerade klasser går att använda rakt av. Klasser markerad med fetstil är lämpade att ärvas.

Component-+-Container-+-Window---Frame
	  |	      |	       |
	  |	      |	       +-Dialog---FileDialog
	  |	      |
	  |	      +-Panel---Applet
	  |
	  +-Canvas
	  |
	  +-Button
	  +-Checkbox
	  +-Choice
	  +-Label
	  +-List
	  +-Scrollbar
	  +-TextComponent-+-TextArea
			  +-TextField

LayoutManager-+-BorderLayout +-CardLayout +-FlowLayout +-GridBagLayout +-GridLayout

Component

Callback metoder

Detta är metoder som anropas av AWT och som är lämpliga att överlagras för att ändra beteendet på sin Component.

public void paint( Graphics g )

Anropas då denna Component blir synlig och därför behöver ritas om. Man kan inte anta något om den nuvarande utseendet, utan måste rita om allt.

public void update( Graphics g )

Anropas som konsekvens av ett anrop till repaint. Den bild som ritades upp förra gången finns kvar, så är det bara en liten sak som ska ändras behöver man bara rita om den.

Är i Component implementerad så att den fyller allt med bakgrundsfärgen och därefter anropar paint. Detta orsakar garanterat flimmer, varför det är lämpligt att överlagra

public boolean handleEvent( Event evt )

Anropas då något event inkommer. Är i Component implementerad så att den tar reda på vad det är för sorts event, och sedan anropar någon av metoderna nedan. Är kul och överlagra om man vill se vilka events som genereras.

Att returnera sant betyder att man hanterade eventet, falskt att man inte gjorde det och att det ska skickas vidare till den Container man befinner sig i.

public boolean mouseDown( Event evt, int x, int y)

Anropas då någon musknapp trycks ner. Koordinaterna är i förhållande till den aktuella Componenten.

Se handleEvent ovan för returvärden.

public boolean mouseDrag( Event evt, int x, int y )

Anropas då musen rörs medans en musknapp är nertryckt. Koordinaterna är i förhållande till den aktuella Componenten. På Uniximplementationerna anropas mouseDrag tills man släpper upp musknappen, även om man förflyttar sig utanför den aktuella Componenten. mouseDrag kan alltså anropas med koordinater som är utanför Componenten.

Se handleEvent ovan för returvärden.

public boolean mouseUp( Event evt, int x, int y)

Anropas då musknappen släpps upp. Koordinaterna är i förhållande till den aktuella Componenten. På Uniximplementationerna anropas mouseUp alltid efter det att man fått ett anrop till mouseDown även om man har förflyttat sig utanför den aktuella Componenten. mouseUp kan alltså anropas med koordinater som är utanför Componenten.

Se handleEvent ovan för returvärden.

public boolean mouseMove( Event evt, int x, int y)

Anropas då musen rörs utan att någon musknapp är nedtryckt.

Se handleEvent ovan för returvärden.

public boolean mouseEnter( Event evt, int x, int y )

Se handleEvent ovan för returvärden.

public boolean mouseExit( Event evt, int x, int y )

Anropas då muspekaren hamnat innanför den nuvarande Componenten.

Se handleEvent ovan för returvärden.

boolean keyDown( Event evt, int key )

public boolean keyUp( Event evt, int key )

public boolean action( Event evt, Object what )

Farliga

public void deliverEvent(Event e)

public void postEvent(Event e)

Component - Canvas

Container - Panel

Peer - foo

Layout

Graphics - rita

Eventhantering

handleEvent

mouseEnter mouseExit mouseMove mouseDown mouseDrag mouseUp

keyDown KeyUp

action

(c) Mattias Wingstedt, 1996