Advanced Java 2 platform how to program - Deitel, H. M. (How to program series, 2002)