JavaFX is an alternative to Swing, and it is especially for better graphics and other media used in user interfaces. JavaFX also has support for styles and to define the user interface in XML. This book is an introduction to JavaFX, and after reading the book, should you be able to use JavaFX as an alternative to Swing. The following book is also about JavaFX, but focuses on more advanced topics.
Click here to download the source files from this book.