Archives for the month of: June, 2009

While on vacation I’ve been watching twitter to see what kinds of things people are doing with JavaFX. One thing I’ve seen a fair amount of tweets on that is pretty gratifying is tying JavaFX to backend data services. One project is a port of Cairngorm from Flex to Java/JavaFX. Another was an earlier demo based on Hessian (which needs to be ported to JavaFX 1.2). Another was about integrating Flamingo to JavaFX.

(more…)

While Jasper is on vacation I thought I’d take a moment and outline the multi-level architectural approach we’ve taken with skinning Controls, and give some rough outline as to when the different levels will be fully supported in JavaFX.

There are basically three different levels of support for skinning in JavaFX.

Levels of Skinning

Levels of Skinning

(more…)

The new JavaFX controls were designed to be easily skinable so that you can create any look you can think up but we still need a default look that you get out of the box. The default skin that comes with JavaFX 1.2 is called Caspian which aims to be flexable and usable as is for a wide range of applications. I thought I would share a little about the design decisions I went through in designing Caspian.

The Requirements

  • Needs to work in many types of applications from product sites though strong branded corporate sites to sparkly web 2.0 sites.
  • Has to fit in and look in place on Windows, Mac, Mobile and TV
  • Must not look identifiably like any other look
  • Should complement the design of a application not over power it

The Technical Requirements

  • Need to be CSS themable so the designer/developer can customize it to fit into their product design
  • Vector based so that the controls look good even when scaled , rotating, animating etc.
  • Needs to be technically simple so that it is fast to render

The Color

  • Has to be gray to fit in with the current fashion and the widest range of products
  • Needs an accent color for important UI parts such as focused items and default buttons on a dialog where the user attention needs to be drawn
  • Has to work on wide range backgrounds

colors

Initial Design

After experimenting with lots of designs and researching what other people are doing in the field here are the initial designs I did in Photoshop.

controls design 1

controls design 2

Example Window Design

Example Window Design

Testing on a extreme range of colors

Testing on a extreme range of colors

Hope you found that interesting the next few blogs on Caspian will cover how to style controls with CSS and how to make custom skins.

Another excellent article on JavaFX charts this time covering the various types of XYCharts.

The remaining five types of charts are all meant to work with XY data. These charts are all subtypes of the XYChart base class…

Another good blog post was published today by Dean Iverson on JavaFX Charts.

The chart components included in JavaFX give developers an easy way to let the users of their applications visualize a wide variety of data. There are six kinds of charts supported in JavaFX 1.2:

Creating Charts in JavaFX

Another link I found the other day to a blog posting by Vaibhav Choudhary on using the JavaFX 1.2 Charting APIs.
JavaFX Bubble Chart

(more…)

A nice little set of articles by Henry Zhang and Jim Weaver at O’Reilly’s InsideRia.com detail how Zhang wrote a PacMan game in FX. From the article:

When I was young I was fascinated by arcade games. One of my favorites was the Pac-Man game. Recently, when I was learning the JavaFX language, I decided to write the game in JavaFX. Based on my experience in other programming languages, I assumed there would be some amount of work in building a game such as Pac-Man, giving me a good feel for RIA development in JavaFX.

A quick perusal reveals at least one no-no that we should document better: never subclass the Shape classes. They weren’t meant to be subclassed, and if JavaFX Script gave us “final” we’d have used it. Rather, use a CustomNode. The only three Node classes in JavaFX 1.2 that were intended to be subclassed were CustomNode, Control, and Container.

I’m not sure anything bad will happen to you if you subclass one of the shapes, maybe we’ll relax this restriction in the future. Primarily, we just never intended this usage. But hey, sometimes the best things aren’t intended! Its great to see some detailed examples coming out about JavaFX, can’t wait to see more!

pie3dWant to know how easy it is to create a 3D pie chart with the new JavaFX 1.2 chart API? (more…)

The recent 1.2 release of JavaFX included our first set of UI Controls. We talked about these recently at JavaOne. We’ve uploaded our slides to the controls portion of the talk. Unfortunately, the slides don’t contain all of the “filler” text you get when presenting the slides, so I’ll provide a little context here. (more…)

There’s a great article over at InformIT by Jim Clarke about what’s new in JavaFX 1.2. Jim has been involved in JavaFX both contributing to the source and building apps since before I got involved last year.

From the article:

Once you start using JavaFX, I think you’ll find that the language is powerful yet very concise. You’ll be amazed at the things you can do with very little code. I have only discussed a few of the new JavaFX 1.2 user interface features—there’s much more to the entire JavaFX platform. I hope that this overview will provide just enough enticement for you to start your own exploration.