ImageViewer

advertisement
ImageViewer
Leertaak 20:
Open bestand ImageViewer_1
Lees in de theorie het deel over Containers.
A
B
C
Welke top-levelcontainer(s) wordt (worden) gebruikt in de klasse
ImageViewer_1?
Welke andere type(n) container(s) vind je in deze klasse?
Welke componenten zijn toegevoegd aan ieder van de containers van vraag A
en B?
Leertaak 21
Open bestand ImageViewer_1
In versie 2 wordt een menubalk toegevoegd aan het frame.
A
B
C
In welke coderegel gebeurt dit?
Wat is een ContentPane?
Met welke methode worden componenten aan het ContentPane toegevoegd?
In de constructormethode van de klasse ImageViewer_1 wordt de methode
makeFrame(); aangeroepen.
D
Hoe luidt de constructormethode?
E
In welke coderegels staat de methode makeFrame(); gedefinieerd?
F
In eerder programmaatjes hebben we niet een aparte methode gebruikt om
het Frame te maken.
Herschrijf ImageViewer_1 waarbij je niet een aparte methode makeFrame();
definieert maar het frame, label en contentpane toch gemaakt worden.
Gebruik hiervoor de kennis die je hebt opgedaan uit voorgaande opdrachten.
Sla dit bestand op als ImageViewer_1a.
In de methode makeFrame() staan aan het einde
G
frame.pack();
frame.setVisible(true);
Wat frame.setVisible(true) betekent laat zich raden.
De methode pack() heeft een functie die te maken heeft met de grootte van
het window.
Haal de regel frame.pack() weg. Wat is het resultaat?
Leertaak 22
Open bestand ImageViewer_2
A
In deze versie wordt een menu toegevoegd aan de ImageViewer.
Daarvoor is een methode gedefinieerd.
De methode heet makeMenuBar() en de methode is private.
Wat is de betekenis van een ‘private’ methode? (zie theorie)
B
Is het noodzakelijk om de methode makeMenuBar() hier ‘private’ te maken?
Leertaak 23
Bestand ImageViewer_2.java en ImageViewer_3.java
Er is een menu aangemaakt in de ImageViewer met daarin de menuitems ‘Open’ en
‘Sluiten’. Deze items hebben nog geen functionaliteit; er gebeurt nog niets wanneer
je op het item klikt. We gaan nu eerst zorgen dat het item ‘Sluiten’ iets gaat doen,
namelijk het venster sluiten.
Voor het openen van een bestand heeft Java een methode openFile().
Voor het sluiten van een bestand kent Java de methode quit.
Zoals je al eerder hebt gezien is voor het toevoegen van acties aan componenten
een ‘event handler’ nodig en moeten objecten ‘listeners’ zijn van het event.
MenuItems geven ActionEvents wanneer een gebruiker hen activeert.
A
B
C
D
In welke coderegels vind je actionListeners terug?
Hoe luidt de header van de methode die de event genereert?
Hoe luidt de body van de methode die de ‘Bestand - Open’ event genereert?
Hoe luidt de body van de methotde die de ‘Bestand – Sluiten’ event
genereert?
Leertaak 24
Open de map ImageViewer_4.
In de map ImageViewer_4 zijn meerder klassen te vinden: ImagePanel,
ImageFileManager, OfImage en ImageViewer_4.
A
Naar welke klasse verwijst super(width, height, TYPE_INT_RGB);
OfImage is een klasse die een afbeelding representeert en zorgt dat we deze
afbeelding kunnen manipuleren. De klasse OfImage is een uitbreiding van de
standaard Java klasse BufferedImage. BufferedImage beschrijft een afbeelding als
een buffer van data betreffende de afbeelding. Een object van BufferedImage is
samengesteld uit een raster van pixels en een model waarmee deze pixels kunnen
worden vertaald naar kleuren.
B
Omschrijf globaal de functie van de methoden
public void setPixel(int x, int y, Color col) en
public Color getPixel(int x, int y)
Leertaak 25
Open het bestand ImagePanel.java
A
Omschrijf in je eigen woorden wat de functie is van de klasse ImagePanel.
B
Van welke klasse is de klasse ImagePanel een subklasse?
Leertaak 26
Open het bestand ImageFileManager.java
ImageFileManager is de klasse die in dit programma zorgt voor het laden en
Opslaan van afbeeldingen. ImageFileManager zorgt er dus voor dat de gebruiker
in staat wordt gesteld om een bestand te kiezen.
Objecten van deze klasse kunnen in het bestandssysteem navigeren en een directory
openen.
A
B
Welke methode is verantwoordelijk voor het laden van bestanden?
Probeer regel voor regel te omschrijven wat de methode uit Leertaak 7A doet.
Leertaak 27
A
De klassen in de map ImageViewer hebben alles met elkaar te maken.
Zij hebben elkaar nodig om het programma te kunnen uitvoeren.
Kijk naar de bestanden ImageViewer_4.java. OfImage.java,
ImageFileManager.java en ImagePanel.java.
In welke klasse wordt naar welke andere klasse verwezen?
B
Teken iedere klasse als rechthoek met de naam erin.
Teken de door jou in A benoemde verwijzingen naar elkaar met pijlen.
Download