Java: An Eventful Approach - Bruce, Kim B.; Danyluk, Andrea Pohoreckyj; Murtagh, Thomas P.