Repository navigation
v0.3.0
Camden's Pain(t) Version 0.3.0 - 09/25/2026
Sprint 3 submission for CS 250.
Source code:
GitHub repo: https://github.com/CamdenGoddard/Paint
Tag / release: v0.3.0 (https://github.com/CamdenGoddard/Paint/releases/tag/v0.3.0)
This tag matches the code uploaded in the sprint 3 zip.
New features:
- Tabs - multiple images can be open in the same window at once. File > New Tab starts a blank one; File > Open always opens into a new tab rather than replacing what's already open.
- Seven new tools alongside the existing Pencil: Line, Square, Rectangle, Circle, Ellipse, Triangle, plus a Color Grabber (eyedropper) and an Eraser. Pick one from the new Tool dropdown.
- Shape tools preview live while you drag and lock in when you release the mouse, instead of committing immediately like Pencil does.
- Color Grabber sets the active color from a pixel you click. Right-click does the same thing at any time - including mid-drag on a shape you're still drawing, which updates that shape's color on the spot.
- Width slider now also controls shape outline thickness, not just freehand line width, and the label reads in pixels ("Width: 15 px").
- A "Dashed" checkbox draws dashed lines and outlines instead of solid.
- The color swatch now has a label showing the selected color's English name (for common colors), hex code, and RGB value.
- Keyboard shortcuts: Ctrl+N (New Tab), Ctrl+O (Open), Ctrl+S (Save), Ctrl+Shift+S (Save As), Ctrl+W (Close Image).
- Full JavaDoc comments across every class and method.
Design notes / assumptions:
- The assignment's color-grabber requirement ("has to modify shapes that are being drawn") was interpreted as: right-click sampling works at any time, even mid-drag, so it can retarget the color of a shape that's still being previewed before you let go of the mouse.
- Square and Circle behave like Rectangle and Ellipse but force both dimensions equal, using the larger of the drag's width/height.
- Triangle is a simple isosceles triangle (apex centered on top, base spanning the full width) inscribed in the drag's bounding box.
- Undo/redo and a dedicated "New" option (mentioned as "expected next" in the Sprint 2 notes) were intentionally left out - they weren't on this sprint's requirement list, and tabs cover most of what a quick "New" was standing in for.
Known issues:
- Still no undo/redo.
- Only one extra shape beyond the required list would still be needed for the optional Week 4 bonus, along with a Java pun (added a small one in the About window) and the eraser (already included above).
- If you type a file name with an extension Save As doesn't offer (something other than .png/.jpg/.bmp), it silently saves as PNG - same as Sprint 2.
- The color-name label only recognizes a curated list of common colors; anything else reads as "Custom" rather than the closest match.
Expected next sprint:
- Undo / redo.
- Whatever Week 4 adds on top of the optional bonuses.