Voor alle opmerkingen: jan.lemeire@vub.ac.be of aswinnen@vub.ac.be
Alle voorbeelden in 1 zip file
(extraheer naar een folder die je als workspace gebruikt in Eclipse)
SuperClass.java: Voorspel aan de hand van de code de output. Klassediagram.
Opgave
Doel: een applikatie maken om verschillende figuren te tekenen & interaktief te bewerken.
Code: Figure.java & FigureWindow.java
1. Je krijgt een panel waarop je figuren kan tekenen: rechthoeken en vierkanten.
2. Voeg circels toe.
3. Voeg driehoeken toe (gebruik drawPolygon van Graphics class, van de java.awt.Graphics package).
4. Verander zijn kleur als er op (in) een figuur geklikt wordt.
5. Voeg een tekstveld (JTextField) en JCombobox toe met voor elk een label ("Grootte" en "Type" respectievelijk).
6. Voeg een figuur toe als er buiten een figuur geklikt wordt. Geef de figuur bovenstaande eigenschappen voor grootte & type en neem de plaats van het klikken als middelpunt.
7. Als je meer als 20 figuren toevoegt of geen getal invoert in de JTextField krijg je een error. Vang deze errors op en geef een error bericht met JOptionPane.showMessageDialog(...)
8. Zet de FigureWindow op een website mbv JApplet.
Java oplossing
Modula-2 oplossing:Opgave uitbreidingen
- Gebruik een flexibele Vector in plaats van een array.
- Gebruik een Iterator om alle elementen af te lopen.
- Zorg ervoor dat er composietfiguren kunnen getekend worden, die bestaan uit combinaties van de basisfiguren.
- Idee: Om zulke figuren aan te maken kan je een knop toevoegen. Bij het klikken op deze knop groepeer je alle tot-dan-toe getekende figuren in een nieuwe composietfiguur!
- Hint: verplaats de oorsprong met g.translate(50,50); vergeet deze nadien wel niet terug te zetten met g.translate(-50,-50);
- Elimineer de if (item == "Vierkant"){ else if ... else if ... constructie in de processMouseEvent van FigurePanel, gebruik makend van de java meta-informatie in de Class klasse. OF ga direkt naar puntje 4.
- Class documentatie, gebruik forName("Vierkant"), newInstance() (default constructor) en zet parameters met een extra method
- vang de mogelijke errors op
- bepaal de grootte van de figuur door de user 2x te laten klikken, eerst voor de linkerbovenhoek en dan voor de linkerbenedenhoek.
- Vervang de vector door een Linked List
- Voeg een 'toolbox' doe waaruit je een aktie kan kiezen (gebruik togglebuttons):
- verwijderen, verplaatsen en vergroten figuur
- kleur veranderen van een figuur
- nieuwe figuur: vierkant, rechthoek, cirkel, ...
- (nieuwe composietfiguur)
- start bvb. met deze code: Figure.java en FigureWindow.java
- Voeg een popup-menu (die je vult met menuItems) toe aan een figuur met volgende acties: verwijderen, kleur veranderen (gebruik het kleurmenu), ...
- Zorg ervoor dat je een composietfiguur kan editen (herbruik bestaande code!!)
Use the awt Graphics object (see Java Reference)
Create your own listeners to connect the object
- Back to the top -