I'm the book's author and appreciate your interest in my book. Although I have tried to make the book as beginner-friendly as possible, my writing style differs from many others and some people feel it is too difficult to grasp for the absolute Java beginner.
Perhaps part of the problem is that the chapters are somewhat lengthy. For example, Chapter 1 presents an introduction to Java followed by a discussion on how to obtain/install the JDK and NetBeans. It then demonstrates how to create a first and simple HelloWorld application. Finally, the chapter dives into basic language features starting with comments and ending with statements. This is probably too much information to appear in a single chapter.
Another problem may be not enough complete class listings in Chapter 1. Although I present the complete source code to HelloWorld, I don't present complete small classes when demonstrating statements and other language features. Instead, the idea is for the reader to copy the code fragment into HelloWorld, compile the source code, and run the resulting application. I didn't do much hand holding, and that has proven to be a problem.
Yet another problem is that Java is huge and it's not easy to figure out what all to cover. Perhaps I shouldn't have covered tougher topics such as the Reflection and References API in the book. However, I was trying to give a sense of completeness.
Because of the amount of material that I felt needed to be included, I ended up summarizing certain parts of Java (such as Chapter 7's coverage of Swing) in order to not exceed the print-on-demand limit of 1000 pages cover to cover -- this was probably a problem. I started Chapter 7 by discussing AWT because it is the foundation on which Swing is built. (I didn't dive into AWT-specific components because developers are encouraged to use Swing instead.) When it came to discussing Swing, I reviewed the architecture and provide a couple of brief examples. I didn't have the room to discuss all of the components in depth, although I introduced some components (such as JTable) in remaining chapters, and discussed enough about these components to make the programs in which they were used understandable.
One thing that bothers me about this book is the need to include a chapter on Android. I didn't want to include this chapter but my publisher insisted on it. Instead, I would have preferred to cover NIO and security.
The book is what it is, and there is some very good stuff in this book, like a chapter on XML (including DOM/SAX/StAX/XPath) followed by a chapter on web services. Also, I continue to supply free copies of Appendixes C and D on my website -- see http://tutortutor.ca/cgi-bin/makepage.cgi?/books/bj7. I'll occasionally expand these appendixes to provide additional content. Appendixes A and B are included in the book's code, which can be freely downloaded from Apress's Beginning Java 7 page.
If you have a friend who will pay for it, then you can have it free.
If JF has worked hard to write the book, he is entitled to payment. Why should you expect somebody to supply you the book free of charge?