Skip to content

v0.3.0

Choose a tag to compare

@CamdenGoddard CamdenGoddard released this 29 Sep 17:16
· 3 commits to main since this release

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.