Lecture overview -- Keyboard shortcut: 'u'  Previous page: Listener klassen i farveblandereksemplet -- Keyboard shortcut: 'p'  Next page: Tegneprimitiver i Java [Section] -- Keyboard shortcut: 'n'  Lecture notes - all slides and notes together  slide -- Keyboard shortcut: 't'  Help page about these notes  Alphabetic index  Course home  Page 24 : 30
Forelæsningsnoter i Objekt-orienteret Programmering
Grafiske brugergrænseflader i Java, del 2
Implementation af listeners med adapters

Vi ser her på en fleksibel teknik til definition af listener klasser via såkaldte adapter klasser

Et listener objekt har ofte behov for kun at implementere én eller nogle få metoder i en listener interface

Java.awt.event pakken indeholder en såkaldt adapter klasser pr. interface, som implementerer interfacet med lutter tomme metoder

En klasse, som implementerer et listener interface, kan ofte med fordel arve fra en adaptor klasse

/user/normark/courses/prog1/prog1-01/sources/noter/../../html/noter/applets/farver/ColorPresenter.javaBrug af en WindowAdapter i metoden main i klassen ColorPresenter.

Brug af en WindowAdapter i metoden main i klassen ColorPresenter. Metoden main i klassen ColorPresenter bliver kaldt når vi ønsker at udføre farveblanderen som en applikation (i modsætning til en applet, hvor udgangspunktet for programudførelsen jo var init metoden). Vi ser en singulært defineret klasse, som ikke har et navn, og som specialiserer klassen WindowAdapter

En sigulært defineret klasse er en klasse uden navn, som direkte optræder et sted, hvor klasser ellers refereres via et navn

Singulært definerede klasser sparer os for sædvanlige klassedefinitioner. Singulære klassedefinitioner giver kortere (men ikke nødvendigvis mere læselige) programmer. I Java optræder sigulært definerede klasser typisk i forbindelse med en afledning via extends

/user/normark/courses/prog1/prog1-01/sources/java/farver3/ColorPresenter.javaEt alternativt til singulære klasser: En indre klasse i ColorPresenter.

Et alternativt til singulære klasser: En indre klasse i ColorPresenter. Vi ser her en indre klasse WindowCloser, som specialiserer WindowAdapter (vist med rødt). Vi har erklæret den static, efter konkret (men indirekte råd fra Compileren, idet compileren ikke tror der findes en instans af den ydre klasse ColorPresenter). Her er altså tale om en 'statisk nested klasse'. I metoden main bliver det nu lettere at se, hvad det er for et objekt der virker som window listener (vist med blåt)