- Listeners: canvas vs applet
- Selecting: isSelected, highlighting
- Deleting shapes
- Changing colors
- Dragging / moving: mousePressed, mouseDragged, mouseReleased.
Optimal: relative position
- Creation: fixed-size fixed-location, fixed-size variable location.
How do you remember which shape to create?
- Simple resizing of selected object. Resize button. mouseDragged must
distinguish between moving and resizing
- Create and drag to resize: Use temporary shape of some sort or add
to vector and automatically go into resizing
- Lines: How to check if point is in line. Moving / redirecting.
Tricky: avoid divide by zero. Make sure it works for horizontal and
vertical lines. Tolerance, fuzziness.
Miniproject: Should shape include the resize
– inheritance mechanism (super, super constructors, rules for default constructors)
- More encapsulation, composition, and design (eval and filled oval, composite shapes, using points for person instead of coordinates), relative position, resizing persons, act, shapes with mouse listeners – pointing person)
Next year: Objects using each other. strategy pattern for operation on all, inner classes
Due first week