I’m reading the Oracle Press book: “Java, A Beginner’s Guide” Sixth Edition, by Herbert Schildt. I’m finding it very well written, and there are quizzes at the end of each chapter and lots of example code. The book covers new features in Java 8 as well as intros to both Swing and JavaFX. You might find it a bit pricey. My copy is from the local library.
The Java Tutorials http://docs.oracle.com/javase/tutorial/ are an underrated resource for learning the language, are actually quite good. And they are free. Some expensive texts seem to duplicate a lot of the lessons taught here.
There are good texts available online, either through a library (if they subscribe to Safari), as well as some free books. I remember thinking the Eckels was pretty helpful:
There’s a lot to coding even a simple 2D game: with much to learn about graphics, keyboard/mouse control, animation (often not taught in beginning courses), as well as core Java OOP.
Hey, I just noticed a 3rd Edition of Bloch’s “Effective Java” is out! (That is a tough nut to crack. Save it for later.)