Discover millions of ebooks, audiobooks, and so much more with a free trial

Only $11.99/month after trial. Cancel anytime.

JavaFX 1.2 Application Development Cookbook
JavaFX 1.2 Application Development Cookbook
JavaFX 1.2 Application Development Cookbook
Ebook847 pages2 hours

JavaFX 1.2 Application Development Cookbook

Rating: 0 out of 5 stars

()

Read preview

About this ebook

This book is a comprehensive collection of recipes that elaborate on known use cases. You will find an organized step-by-step procedure to accomplish each task followed by detailed explanations to better understand how and why each step was undertaken, and many links to online references and other related sections in the book that supplement the subject in question. The book is written so that you can work through the recipes in order or go straight to the recipes that interest you; where a recipe depends on other recipes they are clearly referenced. If you are a Java developer, Rich Internet Application content developer, or graphic designer who wants to build RIAs featuring animations, videos, and other feature-rich content, this book is for you. Knowledge of Java, JavaScript, and JavaFX components is not essential, but will help you exploit this book to your advantage.
LanguageEnglish
Release dateAug 24, 2010
ISBN9781847198952
JavaFX 1.2 Application Development Cookbook

Related to JavaFX 1.2 Application Development Cookbook

Related ebooks

Information Technology For You

View More

Related articles

Reviews for JavaFX 1.2 Application Development Cookbook

Rating: 0 out of 5 stars
0 ratings

0 ratings0 reviews

What did you think?

Tap to rate

Review must be at least 10 words

    Book preview

    JavaFX 1.2 Application Development Cookbook - Vladimir Vivien

    Table of Contents

    JavaFX 1.2 Application Development Cookbook

    Credits

    About the Author

    About the Reviewers

    Preface

    What this book covers

    What you need for this book

    Who this book is for

    Conventions

    Reader feedback

    Customer support

    Errata

    Piracy

    Questions

    1. Getting Started with JavaFX

    Introduction

    The Java proposition

    Enter JavaFX

    Installing the JavaFX SDK

    Getting ready

    Minimum system requirements

    How to do it...

    Installation on Windows

    Installation on Mac OS

    Installation on Ubuntu Linux and OpenSolaris

    How it works...

    Setting up JavaFX for the NetBeans IDE

    Getting ready

    How to do it...

    NetBeans installation on Windows

    Installation on Mac OS

    Installation on Ubuntu Linux and OpenSolaris

    How it works...

    There's more...

    Download JavaFX NetBeans plugin

    See also

    Setting up JavaFX for the Eclipse IDE

    Getting ready

    How to do it...

    How it works...

    See also

    Using javafxc to compile JavaFX code

    Getting ready

    How to do it...

    How it works...

    See also

    Creating and using JavaFX classes

    Getting ready

    How to do it...

    How it works...

    Object literal initialization

    There's more...

    Initialization block

    See also

    Creating and using variables in JavaFX

    Getting ready

    How to do it...

    How it works…

    There's more...

    Explicit type declaration

    Implicit coercion

    JavaFX types

    Variable scope

    Script level

    Instance level

    Local level

    See also

    Using binding and triggers to update variables

    Getting ready

    How to do it...

    How it works...

    Binding to variables

    Binding to a conditional

    Binding to a code block

    Binding to a function

    Bind to an object literal

    There's more...

    Using triggers

    See also

    Creating and using JavaFX functions

    Getting ready

    How to do it...

    How it works...

    There's more...

    Bound functions

    The run() function

    See also

    Integrating your JavaFX code with Java

    Getting ready

    How to do it...

    How it works...

    There is more...

    Implementing a Java interface in JavaFX

    See also

    Creating and using JavaFX sequences

    Getting ready

    How to do it...

    How it works...

    There is more...

    Sequence operators

    Sequence operations

    Sequence slices

    Sequence loop query

    Working with JavaFX String

    Getting ready

    How to do it...

    How it works...

    There is more...

    Using JavaFX localization

    2. Creating JavaFX Applications

    Introduction

    Building a JavaFX application

    Getting ready

    How to do it...

    How it works...

    Decomposing the application

    See also

    Drawing simple shapes

    Getting ready

    How to do it...

    How it works...

    There's more...

    Polyline and Polygon

    Arc

    Bézier curves

    See also

    Creating complex shapes using Path

    Getting ready

    How to do it...

    How it works...

    See also

    Creating shapes with constructive area geometry

    Getting ready

    How to do it...

    How it works...

    There's more...

    See also

    Drawing letter shapes using the Text class

    Getting ready

    How to do it...

    How it works...

    There's more...

    Text origin

    Text wrapping

    Text alignment

    Embolden your font

    Locating fonts

    See also

    Handling user input

    Getting ready

    How to do it...

    How it works...

    There's more...

    See also

    Arranging your nodes on stage

    Getting ready

    How to do it...

    How it works...

    There's more...

    See also

    Making your scripts modular

    Getting ready

    How to do it...

    How it works...

    There's more...

    Script versus module

    Organize your code into packages

    Access modifiers

    See also

    Creating your own custom node

    Getting ready

    How to do it...

    How it works...

    There's more...

    See also

    Controlling your application's window style

    Getting ready

    How to do it...

    How it works...

    There's more...

    Controlling opacity

    See also

    Going full-screen

    Getting ready

    How to do it...

    How it works...

    There's more...

    See also

    3. Transformations, Animations, and Effects

    Introduction

    The JavaFX animation framework

    Modifying shapes with the Transformation API

    Getting started

    How to do it...

    How it works...

    There's more...

    See also

    Creating simple animation with the Transition API

    Getting ready

    How to do it...

    How it works...

    There's more...

    The Timeline

    See also

    Composing animation with the Transition API

    Getting ready

    How to do it...

    How it works...

    There's more...

    See also

    Building animation with the KeyFrame API

    Getting ready

    How to do it...

    How it works...

    There's more...

    Interpolation

    Using the Timeline class as a timer

    See also

    Creating custom interpolators for animation

    Getting ready

    How to do it...

    How it works...

    See also

    Morphing shapes with the DelegateShape class

    Getting ready

    How to do it...

    How it works...

    See also

    Using data binding to drive animation sequences

    Getting ready

    How to do it...

    How it works...

    See also

    Applying cool paint effects with gradients

    Getting ready

    How to do it...

    How it works...

    There's more...

    See also

    Creating your own customized Paint

    Getting ready

    How to do it…

    How it works...

    See also

    Adding depth with lighting and shadow effects

    Getting ready

    How to do it...

    How it works...

    There's more...

    See also

    Creating your own Text effect

    Getting ready

    How to do it...

    How it works...

    See also

    Adding visual appeal with the Reflection effect

    Getting ready

    How to do it...

    How it works...

    See also

    4. Components and Skinning

    Introduction

    Creating a form with JavaFX controls

    Getting ready

    How to do it...

    How it works...

    There's more...

    See also

    Displaying data with the ListView control

    Getting ready

    How to do it...

    How it works...

    There's more...

    Using a custom data model with ListView

    See also

    Using the Slider control to input numeric values

    Getting ready

    How to do it...

    How it works...

    See also

    Showing progress with the progress controls

    Getting ready

    How to do it...

    How it works...

    There's more...

    See also

    Creating a custom JavaFX control

    Getting ready

    How to do it...

    How it works...

    See also

    Embedding Swing components in JavaFX

    Getting ready

    How to do it...

    How it works...

    There's more...

    Wrapping custom Swing controls into JavaFX node

    Creating a Swing control façade from JavaFX

    See also

    Styling your applications with CSS

    Getting ready

    How to do it...

    How it works...

    There's more...

    JavaFX CSS

    Styling Text nodes with CSS

    Styling Paint properties with CSS

    See also

    Using CSS files to apply styles

    Getting ready

    How to do it...

    How it works...

    There's more...

    Pseudo-classes

    Cascading styles

    See also

    Skinning applications with multiple CSS files

    Getting ready

    How to do it...

    How it works...

    See also

    5. JavaFX Media

    Introduction

    Accessing media assets

    Getting ready

    How to do it...

    How it works...

    There's more...

    Loading and displaying images with ImageView

    Getting ready

    How to do it...

    How it works...

    There's more...

    Format support

    Asynchronous loading issues

    Image resize and aspect ratio

    See also

    Applying effects and transformations to images

    Getting ready

    How to do it...

    How it works...

    See also

    Creating image effects with blending

    Getting ready

    How to do it...

    How it works...

    There's more...

    See also

    Playing audio with MediaPlayer

    Getting ready

    How to do it...

    How it works...

    There's more...

    See also

    Playing video with MediaView

    Getting ready

    How to do it...

    How it works...

    There's more...

    See also

    Creating a media playback component

    Getting ready

    How to do it...

    How it works...

    See also

    6. Working with Data

    Introduction

    Storage API

    REST-style development

    Data visualization

    Saving data locally with the Storage API

    Getting ready

    How to do it...

    How it works...

    There's more...

    Storage organization

    Local storage configuration

    Accessing remote data with HttpRequest

    Getting ready

    How to do it...

    How it works...

    There's more...

    HTTP methods

    See also

    Downloading images with HttpRequest

    Getting ready

    How to do it...

    How it works...

    There's more...

    See also

    Posting data to remote servers with HttpRequest

    Getting ready

    How to do it...

    How it works...

    There's more...

    See also

    Uploading files to servers with HttpRequest

    Getting ready

    How to do it...

    How it works...

    There's more...

    See also

    Building RESTful clients with the PullParser API

    Getting ready

    How to do it...

    How it works...

    There's more...

    Custom parsing

    See also

    Using the Feed API to create RSS/Atom clients

    Getting ready

    How to do it...

    How it works...

    There's more...

    Handling RSS

    Handling Atom

    Override default parsing behavior

    See also

    Visualizing data with the JavaFX chart API

    Getting ready

    How to do it...

    How it works...

    There's more...

    Chart customization

    7. Deployment and Integration

    Introduction

    The unified programming model

    Building and packaging your app with an IDE

    Getting ready

    How to do it...

    How it works...

    There's more...

    See also

    Building and packaging your app with javafxpackager

    Getting ready

    How to do it...

    How it works...

    There's more...

    Automating your JavaFX build with Ant

    See also

    Packaging your app to be Web Start(ed)

    Getting ready

    How to do it...

    How it works...

    There's more...

    See also

    Packaging your app as an applet

    Getting ready

    How to do it...

    How it works...

    There's more...

    Overriding the JNLP file name

    See also

    Passing arguments to JavaFX applications

    Getting ready

    How to do it...

    How it works...

    There's more...

    Accessing all arguments

    Command-line arguments

    JVM arguments

    See also

    Making your applets drag-to-install

    Getting ready

    How to do it...

    How it works...

    There's more...

    AppletStageExtension Hooks

    Preventing unintentional dragging

    Control post-installation behavior

    See also

    Controlling JavaFX applets from JavaScript

    Getting ready

    How to do it...

    How it works...

    There's more...

    Type crossing JavaScript to JavaFX

    Accessing the Scene graph

    Accessing JavaScript from JavaFX

    See also

    8. The JavaFX Production Suite

    Introduction

    Loading multiple images dynamically

    Getting ready

    How to do it...

    How it works...

    There's more...

    See also

    Exporting Adobe Photoshop graphics to JavaFX

    Getting ready

    How to do it...

    How it works...

    There's more...

    The FXD data file

    What gets exported

    Exporting Adobe Illustrator graphics to JavaFX

    Getting ready

    How to do it...

    How it works...

    There's more...

    What gets exported

    See also

    Exporting Scalable Vector Graphics (SVG) to JavaFX

    Getting ready

    How to do it...

    How it works...

    There's more...

    What gets exported

    Features not supported

    Inkscape and JavaFX

    See also

    Using objects loaded from FXZ files

    Getting ready

    How to do it...

    How it works...

    There's more...

    Using FXDNode to load objects

    Accessing Group nodes directly

    Accessing objects directly

    Placing non-orphaned nodes

    Using FXDNode to load object asynchronously

    Event notifications through FXDLoader

    See also

    A. Mobile JavaFX

    B. JavaFX Composer

    C. JavaFX Products and Frameworks

    D. Best Practices for Development

    E. Best Practices for Deployment

    Index

    JavaFX 1.2 Application Development Cookbook

    Vladimir Vivien


    JavaFX 1.2 Application Development Cookbook

    Copyright © 2010 Packt Publishing

    All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.

    Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book.

    Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.

    First published: August 2010

    Production Reference: 1170810

    Published by Packt Publishing Ltd. 32 Lincoln Road Olton Birmingham, B27 6PA, UK.

    ISBN 978-1-847198-94-5

    www.packtpub.com

    Cover Image by Karl Moore (< karl.moore@ukonline.co.uk> )

    Credits

    Author

    Vladimir Vivien

    Reviewers

    Anghel Leonard

    Luca Masini

    Meenakshi Verma

    Acquisition Editor

    Sarah Cullington

    Development Editor

    Dhwani Devater

    Reshma Sundaresan

    Technical Editors

    Aaron Rosario

    Mohd. Sahil

    Indexer

    Hemangini Bari

    Tejal Daruwale

    Editorial Team Leader

    Akshara Aware

    Project Team Leader

    Priya Mukherji

    Project Coordinator

    Leena Purkait

    Proofreader

    Clyde Jenkins

    Production Coordinator

    Melwyn D'sa

    Cover Work

    Melwyn D'sa

    About the Author

    Vladimir Vivien is a software engineer living in the United States. Past and current experience include development in Java and .Net for industries including publishing, financial, and healthcare. He has worked with a varied number of technologies including user-facing GUI frontends and backend middleware. Vladimir enjoys taking part in open source projects. He is the author of JmxBuilder a Groovy DSL for instrumentation and management that is now part of the core Groovy project. Vladimir has presented some of his ideas at JavaOne, NFJS Software Symposium, and local Java user groups.

    Besides JavaFX, he has a wide range of technology interests including Java, OSGi, Scala, BugLabs, Arduino, SunSPOT, and any other interesting projects running on the JVM. You can follow Vladimir through his blog: http://blog.vladimirvivien.com/, Twitter: http://twitter.com/vladimirvivien, and LinkedIn: http://www.linkedin.com/in/vvivien.

    Firstly, I want to thank my wife for her support, especially during the crunch period when I would lock myself in my office for hours to finish a chapter. I also want to thank everyone who offered kind and encouraging words that kept me going when I wanted to literally walk away from the project.

    A special shout out goes to Sarah Cullington, my editor, who is the reason that this book exists. Thank you, Sarah, for not giving up on the project despite its many setbacks. Thanks to the entire Packt Publishing team for taking the risk in a new author like myself, and in a nascent technology like JavaFX.

    Finally, I must give a shout out to to the Sun team, who saw the need for a declarative language for rich client development on the VM, and seized the opportunity to bring JavaFX to life. Although JavaFX is new in this space, thanks to the hard work of these dedicated engineers, JavaFX is a complete platform with a complete toolset for developing rich and engaging visual applications on the JVM.

    About the Reviewers

    Anghel Leonard is a senior Java developer with more than 12 years of experience in Java SE, Java EE, and the related frameworks. He wrote and published more than 20 articles about Java technologies, and more than 100 tips and tricks. He also wrote two books about XML and Java (one for beginners and one for advanced readers), and one about JBoss Tools 3.0, with Packt Publishing. During this time, he developed web applications using the latest technologies on the market. In the past two years, he has been focused on developing RIA projects for GIS fields. He is interested in bringing as much desktop as possible to the Web; therefore, GIS applications represents a real challenge for him.

    Luca Masini is a Senior Software Engineer and Architect, who started as a game developer for Commodore 64 (Football Manager) and Commodore Amiga (Ken il guerriero). He soon turned to object-oriented programming, and for that, he was always attracted by the Java language, right from its beginning in 1995.

    After having found his passion, he worked as a consultant for major Italian banks, developing and integrating the main software projects for which he often took technical leadership. He was able to adopt Java Enterprise in an environment where COBOL was the flagship platform, converting it from mainframe-centric to distributed.

    He then set his eyes upon open source technologies, starting from Linux and then with enterprise frameworks, with which he was able to introduce some low-impact concepts, such as IoC, ORM, MVC, and so on. For the the same reason, he was also an early adopter of Spring, Hibernate, Struts, and a whole host of other technologies that, in the long run, have given his customers a technological advantage, and therefore a development cost-cut.

    Lately, however, his attention has been completely directed towards the simplification and standardization of development with Java EE, and for this reason, he is working at the ICT of a large Italian company to introduce advanced build tools (Maven and Continuous Integration), archetypes of project, and Agile Development with plain standards.

    He has worked on the following books (from Packt):

    Google Web Toolkit

    Spring Web Flow 2

    Spring Persistence with Hibernate

    Gaga tu sei qui. Ah tu non fuggi. Tu mi risponderai fino all'ulitmo grido.

    Meenakshi Verma has been a part of the IT industry since 1998. She is experienced in putting up solutions across multiple industry segments using SAP BI, SAP Business Objects, and Java/J2EE technologies. She is currently based in Toronto, Canada, and is working with Enbridge Gas Distribution.

    Meenakshi has been helping with technical reviews for books published by Packt publishing across varied enterprise solutions. Her earlier works include JasperReports for Java Developers, Java EE 5 Development using GlassFish Application Server, Practical Data Analysis and Reporting with BIRT', and EJB 3 Developer's Guide, Learning DOJO.

    I'd like to thank my father (Mr. Bhopal Singh) and mother (Mrs. Raj Bala) for laying a strong foundation in me and giving me their unconditional love and support. I also owe thanks and gratitude to my husband (Atul Verma) for his encouragement and support throughout the review of this book, and many others: my four year old son (Prieyaansh Verma) for giving me the warmth of his love despite my hectic schedules, and my brother (Sachin Singh) for always being there for me.

    This book is dedicated to my son MJV: his smile is my daily inspiration.

    Preface

    This book is a collection of code recipes, examples, and informative discourses designed to enable the reader to get started with creating JavaFX application quickly. The book is arranged as a series of loosely related code recipes that a reader can easily select to fit his or her needs. It exposes readers to a great variety of topics designed to satisfy different skill levels. Readers will learn about the language, animation techniques, paints, effects, JavaFX controls, integration of Swing components, styling with CSS, audio/video, deployment practices, and JavaFX integration with Adobe design tools.

    What this book covers

    Chapter 1, Getting Started with JavaFX... This is the getting started chapter of the book. It provides introductory materials to the platform, including installation instructions to get your environment set up. It also covers language basics such as classes, data types, function usage, variable declaration, data binding, triggers, Java and JavaFX integration.

    Chapter 2, Creating JavaFX Applications... This chapter covers the essential building blocks of the JavaFX application framework, including primitive shapes, path, text, constructive area geometry, mouse/keyboard input, custom node, and window styling.

    Chapter 3, Transformations, Animations, and Effects... This chapter explores the animation capabilities supported in JavaFX. You start with the Transition API to quickly build simple animations. The material continues to cover the KeyFrame API for more advanced animation sequences. You will learn about colors, effects, and how to create your own custom paint and effects.

    Chapter 4, Components and Skinning... This chapter is divided into two sections. The first section shows readers how to use the set of standard JavaFX controls. The chapter also shows how to embed Swing components in your JavaFX scene graph. You will also learn how to create your own custom visual controls. The second section of the chapter introduces the reader to JavaFX's support for CSS. The reader will learn how to style controls using inline and externalized CSS to create skins.

    Chapter 5, JavaFX Media... One of the exciting features of JavaFX is its inherent support for multimedia. JavaFX includes support for rendering of images in multiple formats and support for playback of audio and video on all platforms where JavaFX is supported. In this chapter, readers learn how to display and manipulate images using the Image API. They will also learn how to playback both audio and video using the Media API. The chapter shows also how to create practical custom playback controls.

    Chapter 6, Working with Data... JavaFX provides superb support for accessing and manipulating data both locally and remotely. In this chapter, readers are introduced to the Storage API for local data storage. It provides extensive coverage of JavaFX's HttpRequest API for accessing data on remote web servers. Readers will learn how to use JavaFX's XML and JSON parsers to build RESTful client mashups using popular services such as Google Map, Yahoo Weather, and Zillow Listing. Finally, the chapter explores JavaFX's built-in Chart API for data visualization.

    Chapter 7, Deployment and Integration... This chapter provides coverage of the deployment mechanism supported by JavaFX. Readers will learn how to properly build and package their applications to target the different runtimes supported by JavaFX, including the web browser and the desktop. Readers learn how to create Java Web Start-ready applications using the build tools included in the SDK. The chapter shows how to write JavaScript that communicates with your JavaFX applet while running within the browser.

    Chapter 8, The JavaFX Production Suite... This chapter covers JavaFX's integral support for designer tools from Adobe, including Illustrator and Photoshop. Readers are walked through the process of exporting creative assets using the JavaFX Production Suite plugins available for these tools. The chapters also shows how to integrate exported objects from Photoshop and Illustrator into JavaFX.

    Appendix A, Mobile JavaFX... In this appendix, readers learn about JavaFX's support for mobile development. You will learn about development techniques to target mobile devices and tool support available to get your JavaFX app in the mobile space.

    Appendix B, JavaFX Composer... By the time you get your hands on this book, JavaFX Composer will be available as part of NetBeans. This appendix introduces the reader to the tool and its features.

    Appendix C, JavaFX Products and Frameworks... This appendix introduces the user to the community support that is developing around JavaFX. Readers learn about several open source projects and commercial tools available for JavaFX.

    Appendix D, Best Practices for Development... As the tile of this appendix indicates, readers will learn about key practices to use when creating JavaFX development.

    Appendix E, Best Practices for Deployment... This appendix is a continuation of chapter 7. It discusses practices that should be applied when building and deploying JavaFX applications.

    What you need for this book

    JavaFX SDK 1.2

    Java Development Kit (JDK)

    NetBeans or Eclipse

    JDK 6 update 14 (or later)

    Who this book is for

    This book is for Java developers, RIA content developers, and graphic designers who want to build RIAs featuring animations, videos and other feature-rich content. If you have knowledge of Java, JavaScript, JavaFX components, you can exploit this book to your advantage.

    Conventions

    In this book, you will find a number of styles of text that distinguish between different kinds of information. Here are some examples of these styles, and an explanation of their meaning.

    Code words in text are shown as follows: We can include other contexts through the use of the include directive.

    A block of code is set as follows:

    ...

    1.5+ java-vm-args=-Xmx256M/>

    ...

    ...

    When we wish to draw your attention to a particular part of a code block, the relevant lines or items are set in bold:

    ...

    main-class=com.sun.javafx.runtime.main.Main>

    MainJavaFXScript=param.demo.Main

    name=World

    ...

    Enjoying the preview?
    Page 1 of 1