Skip to content

A3 Guides

These guides support Assignment 3: Sketch Pad. Read them as you work through the assignment.

Foundational Guides

This page shows only NEW guides introduced in A3. If you need foundational guides covered in previous assignments (Git, Packages, Interface Contracts, Inheritance, JUnit 5, etc.), see the All Guides page.


Event-Driven Programming & GUI

Guide When to Read
Event-Driven Programming Before starting — understand what event-driven programming is and how event loops work
Swing API Basics Before starting — Java GUI history, JFrame/JPanel hierarchy, and core Swing patterns
Swing Layout Managers When exploring the starter code — understand how the toolbar and canvas are arranged

Event Handling

Guide When to Read
Adding Event Handlers Before Requirement 1 — how to add ActionListeners to buttons, from classes to lambdas
Introduction to Lambda Expressions Before Requirement 1 — lambda syntax, functional interfaces, and method references
Handling Mouse Events Before Requirement 3 — MouseListener, MouseAdapter, and the dual-registration gotcha

Code Quality

Guide When to Read
Linters and Code Quality Review when Checkstyle or IntelliJ reports warnings in your code
Checkstyle Rules Reference (Reference) — Look up specific Checkstyle violations
IntelliJ Inspections Reference (Reference) — Look up specific IntelliJ warnings

Version Control

Guide When to Read
Git Branching and Pull Requests Before starting work — this assignment requires a dev branch and pull request

References

This section consolidates references from all guides linked above.

Primary Texts:

  • Bloch, J. (2018). Effective Java (3rd ed.). Addison-Wesley.
    • Item 42: Prefer lambdas to anonymous classes
    • Item 43: Prefer method references to lambdas
  • Horstmann, C. S. (2022). Core Java, Volume I: Fundamentals (12th ed.). Oracle Press.
    • Chapter 6: Lambda Expressions
    • Chapter 10: Swing Basics
    • Chapter 11: Event Handling
    • Chapter 12: User Interface Components with Swing
  • Reges, S., & Stepp, M. (2020). Building Java Programs (5th ed.). Pearson.
    • Chapter 14: Graphical User Interfaces
  • Gamma, E., Helm, R., Johnson, R., & Vlissides, J. (1994). Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley.
    • Observer pattern
  • Freeman, E., & Robson, E. (2020). Head First Design Patterns (2nd ed.). O'Reilly.
    • Chapter 2: The Observer Pattern
  • Fowler, M. (2005). Inversion of Control. martinfowler.com.
    • The "Hollywood Principle" underlying event-driven design

Language Documentation:

Tooling:

Git and GitHub:


This page is part of TCSS 305 Programming Practicum, School of Engineering and Technology, University of Washington Tacoma.