7 of 7 people found the following review helpful
5.0 out of 5 stars
The Definitive Reference for JavaFX, Aug 4 2009
By Sten Anderson - Published on Amazon.com
This review is from: Pro JavaFX™ Platform: Script, Desktop and Mobile RIA with Java™ Technology (Paperback)
"Pro JavaFX" is a very well-written, detail-oriented, yet approachable read. While learning JavaFX over the past year, mostly from blogs, hearsay, and copious amounts of trial and error, I had a functional, yet "swiss-cheese" understanding of the language. I was effectively a Java programmer writing JavaFX code -- but I wasn't writing idiomatic JavaFX. I wasn't a JavaFX programmer.
PJP answered nearly all of my questions by not only explaining language features and corner cases, but also usually the rationale and implications behind them as well. It made it easy to get excited about the language itself all over again.
For example, take this small code fragment taken from Chapter 7 which will return the number of cells for a given player in a Reversi game (but I don't need to tell you that, because I think the code does a better job):
public bound function getScore(owner:Owner):Integer {
def cells = for (row in board, cell in row.cells where cell == owner) {
cell
}
return cells.size();
}
There's a lot going on here that I like (but not necessarily news): the bound function makes for easy updating of state, and constructing a sequence from a "for" loop almost feels like cheating it's so concise (I think that "return" is optional though).
What's really great though, is JavaFX's "nested" for loops. I find "for (row in board, coll in row.cells where cell == owner)" not only concise, but about as clear as if it were written out in English. PJP is littered with these "idiomatic pearls of wisdom" that helped me realize how Java-centric my JavaFX code was.
The book is a good survey of JavaFX as it exists today (version 1.2). In addition to the language proper, it covers many of the third party libraries (JFXTras, et al.), has a chapter on building a professional RIA book store front type app, and finishes with a solid chapter on JavaFX Mobile.
While readable cover-to-cover, I've found it more valuable as a reference to pick and choose from as needed. For example, today I finally read up on mixins and the different forms of triggers.
I highly recommend this book to anyone interested in JavaFX. It will likely stay on my desk for some time to come.
7 of 8 people found the following review helpful
5.0 out of 5 stars
Everything you need to know about JavaFX 1.2 in one place, July 20 2009
By J. Giles "Jonathan Giles" - Published on Amazon.com
This review is from: Pro JavaFX™ Platform: Script, Desktop and Mobile RIA with Java™ Technology (Paperback)
Whether you are new to JavaFX or a seasoned Java desktop developer, if you want to get to know JavaFX, then I happily and wholeheartedly recommend the Pro JavaFX Platform book. It is a good book, and it will get you up to speed very quickly. It is based on the latest JavaFX 1.2 release, so you need not worry that you're learning old language and API's.
This book feels like it is primarily targeted towards desktop and rich internet application developers. It contains technical information for developers and designers, and builds a compelling case for choosing JavaFX for web applications and Rich Internet Applications.
Chapter 1, Getting a Jump Start in JavaFX, gives a good introduction to developing applications in the JavaFX language. It brings you up to date on the brief history of JavaFX, and shows you how to get the JavaFX software development kit. It then walks you through the process of compiling and running JavaFX applications, and teaches you a lot about the JavaFX language and API while walking through example application code.
Chapter 2, Taking a Closer Look at the JavaFX Script Language, covers the fundamentals of the JavaFX Script language, including concepts such as variables, primitive types, literal values, and basic operations. JavaFX sequences are introduced in this chapter, along with how to access their members and perform sequence comprehension. By the end of this chapter you have had a comprehensive introduction to the JavaFX Script language.
Chapter 3, Creating a User Interface in JavaFX, associates the metaphor of creating a theatre play with JavaFX development, and discusses creating a stage, a scene, nodes, a model, event handlers, and animating some of the nodes. It then delves into each of these concepts using JavaFX examples, finishing up with a Pong-like game that demonstrates how to detect when nodes in the scene have collided.
Chapter 4, Using Functions, Classes, and Other Advanced Features, discusses how to define functions and classes of your own. It then covers function signatures and function types, and how to write anonymous functions. From there, this chapter introduces how to define class hierarchies, and the covers the details about class types. It also discusses what happens when an object is instantiated and how you can exert control over the process. This is one of the more comprehensive and in-depth chapters within the book, and it will certainly require you to be on your A-game to understand it all. Alternatively, be prepared to re-read this chapter as the need arises.
Chapter 5, Creating Custom UI Components and Charts in JavaFX, explains how to define custom UI components of two fundamentally different types -- custom nodes, and UI controls. After showing you how to create custom nodes in the context of creating a couple of color selection components, it covers how to create UI controls in the context of a stoplight control that has multiple skins. The chapter finishes by teaching you how to use the charting controls to simply and easily create charts in JavaFX.
Chapter 6, Using the Media Classes, explores the capabilities of the JavaFX media classes that make it easy for developers to incorporate playback support for most of the popular formats. This chapter demonstrates how simple it is to include basic media playback support in your JavaFX applications and then shows you how to build more sophisticated playback applications.
Chapter 7, Dynamically Laying Out Nodes in the User Interface, shows how you can leverage the dynamic layout mechanisms of JavaFX to build complicated user interfaces with zero static positioning. These mechanisms include the bind statement, powerful custom layouts built on top of the Panel and Container classes, and the built-in layouts including HBox, VBox, Flow, Tile, and Stack.
Chapter 8, Extending JavaFX with Third-Party Libraries, introduces several of the JavaFX third-party extensions that simplify the development of applications. All of the third-party extensions introduced in this chapter are available as free or open source libraries. This ensures that anyone can make use of these libraries, and also guarantees that you will not be locked into a specific vendor.
Chapter 9, Building a Professional JavaFX Application, shows you some of the professional techniques we use to write real-world JavaFX applications. You will need them when working with a graphic designer, and you will find them useful when you are confronted with the memory usage and performance trade-offs that developers need to consider for real applications. This chapter also provides tips and techniques for enhancing the user's experience.
Chapter 10, Developing JavaFX Mobile Applications, teaches you the basics of JavaFX Mobile development, which will enable you to write portable applications that work on both desktop and mobile devices. During this chapter you'll gain an understanding of the Common Profile, learn how to take advantage of the Java ME capabilities beneath JavaFX Mobile, and adopt JavaFX Mobile best practices that will enable you to write high-performance applications.
The Appendix presents the keywords and the operators of JavaFX Script. Precedence and associativity rules are supplied for the operators.
This book is, I would argue, most relevant for people with previous programming experience. It does not require you to have any previous understanding of JavaFX Script, as it does a very good job of introducing JavaFX Script early in the book. Despite this, if you do come to this book with some knowledge of JavaFX already, the content within this book is very useful to quickly grow your understanding.