Skip to content

Releases: CamdenGoddard/Paint

v0.4.0

Choose a tag to compare

@CamdenGoddard CamdenGoddard released this 06 Oct 16:59

Camden's Pain(t) Version 0.4.0 - 10/04/2026

New features

  • Undo and Redo (Ctrl+Z / Ctrl+Y), built on two stacks (UndoHistory), capped at 40 steps per tab
  • Blank starting image and a Clear Canvas tool with an "are you sure" check
  • Star shape
  • Regular polygon with any number of sides (3 to 100)
  • Right triangle (right angle at the press point)
  • Select tool: select, move, copy, cut and paste a piece of the image, with live preview
  • Text tool: place user-typed text with a live preview
  • Tabs and git as in earlier sprints

Notes

  • Selection outline is drawn on a separate layer, so it never ends up in saved files
  • Each move, paste or text placement is one undo step
  • A pasted piece appears just down and right of the original, already selected, so it can be dragged into place

Known issues

  • Selection is rectangle only; placed text cannot be edited or moved (undo and redo it)
  • Text uses the default font only
  • Undo history is lost when a tab is closed

Critique
The program does everything the Sprint 4 list asks for and the features work. ShapeDrawer, UndoHistory and ToolSettings are small and each do one job. The weak spot is ImageCanvasTab.java (about 800 lines), which mixes file saving, mouse handling and selection logic and should be split up. I need to add more files to the program.

v0.3.0

Choose a tag to compare

@CamdenGoddard CamdenGoddard released this 29 Sep 17:16

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.

v0.2.0

Choose a tag to compare

@CamdenGoddard CamdenGoddard released this 18 Sep 04:18

Camden's Pain(t) Version 0.2.0 - 09/16/2026

Sprint 2 submission for CS 250.

Source code:
GitHub repo: https://github.com/CamdenGoddard/Paint
Tag / release: v0.2.0 (https://github.com/CamdenGoddard/Paint/releases/tag/v0.2.0)
This tag matches the code uploaded in the sprint 2 zip.

New features:

  • Draw on the canvas by clicking and dragging the mouse.
  • Color picker to choose what color you draw with.
  • A slider to control line width, with a label showing the current number.
  • Open, Save, and Save As now all support PNG, JPG, and BMP.
  • Help menu: "Help" (how to use the app) and "About" (opens in its own
    separate window, not just a pop-up).
  • The app now warns you if you try to open a different picture, use
    Close Image, or Exit while there are unsaved changes - this also
    catches clicking the window's X button, not just the Exit menu item.
  • The window can be resized; if the picture is bigger than the window,
    it scrolls (same as Sprint 1).

Known issues:

  • No undo/redo yet.
  • No separate "New" option - Close Image clears back to a blank canvas,
    which covers the same need for now.
  • Only freehand drawing - no shape tools (line, rectangle, etc.) yet.
  • The color picker and width slider only affect new lines going forward,
    not lines already drawn (this is expected - once a line is drawn it's
    just pixels on the canvas, there's nothing left to "recolor").
  • 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 anyway.

Expected next sprint:

  • Undo / redo.
  • A real "New" blank canvas option.
  • Shape tools beyond freehand drawing, if required.

v0.1.0

Choose a tag to compare

@CamdenGoddard CamdenGoddard released this 18 Sep 04:17

Camden's Pain(t) Version 0.1.0 - 09/11/2026

Sprint 1 submission for CS 250.

Source code:
GitHub repo: https://github.com/CamdenGoddard/Paint
Tag / release: v0.1.0 (https://github.com/CamdenGoddard/Paint/releases/tag/v0.1.0)
This tag matches the code uploaded in the sprint 1 zip.

New features:

  • Open an image from a file and display it.
  • Menu bar with a File menu.
  • Save - writes the image back to the file it was opened from.
  • Save As - pick a new file name/location; saves there as a PNG.
  • Close Image - clears the picture without exiting the program.
  • Exit.

Known issues:

  • There are no drawing tools yet, so Save / Save As just write the same
    picture back out. Actual drawing is planned for the next sprint.
  • Save As only writes PNG right now, even if you type a different extension.
  • Save overwrites the original file with no "are you sure" prompt.
  • No warning if you close/exit without saving.

Expected next sprint:

  • Drawing on the canvas with the mouse.
  • A color picker and a way to change the line size.
  • A "New" option to start a blank canvas.