Skip to main content

New Jeff Friesen Article: Reading Newsfeeds in JavaFX with FeedRead

Posted by editor on December 24, 2009 at 9:25 AM PST

We've just published Jeff Friesen's new article, Reading Newsfeeds in JavaFX with FeedRead. This article is a follow-up to Jeff's recent article Learn about JavaFX's APIs for Reading RSS and Atom Newsfeeds. The earlier article provides an introduction to JavaFX's newsfeed capabilities; the new article shows how to take those capabilities and apply them to create a snazzy little JavaFX feed reader application.

The FeedRead app demoed in "Reading Newsfeeds in JavaFX with FeedRead"

Jeff built and tested FeedRead using NetBeans IDE 6.5.1 and JavaFX 1.2. The application can be run in stand-alone mode, or within a web browser. Running the app in a web browser provides the advantage that when you click on a feed item, the full article will be loaded into a new browser window.

Jeff provides large snippets of the code that performs the key functions for the app, and talks about what the individual sections do, and why certain elements that might appear surprising had to be that way. Because JavaFX is so young a technology, there are still some work-arounds that are required when you build an application of any complexity. For example, Jeff refers to Amy Fowler's JavaFX 1.2: Layout post in describing why it was necessary to subtract flowRef.layoutBounds.minX in the layoutX: bind statement (and also do the equivalent for layoutY).

It all goes back to the question of coordinate systems that has always been a part of graphics development: is the position or offset you're working with in absolute coordinates, or is it a relative coordinate? Programming it the wrong way can produce some surprising and often-times dazzling results, that may cause the developer to burst out in laughter and subsequently spill their coffee all over the keyboard. So, you do want to be careful to get relative versus absolute coordnates right in each situation.

Another aspect of JavaFX's newness: bugs in the platform itself that may not have quick work-arounds when you develop an application. For example, in Jeff's app, JavaFX issue JFXC-3431: Signed javafx-applet does not get focus before html page area is clicked rears its ugly head, causing the text box to not always receive focus when FeedRead runs as an applet. To reassert the proper focus, you need to reload the applet or switch to another browser window, then come back to window where you're running FeedReed. In addition, there is an oddity wherein active buttons are sometimes grayed out, as though they were disabled, when that's not really the case.

In sum, Reading Newsfeeds in JavaFX with FeedRead is an excellent demonstration of how to apply JavaFX's newsfeed capabilities to develop an application, runnable in stand-alone mode or within a browser.

I'll close this discussion by pointing you to Jeff's "Happy Holidays" JavaFX app, which won the recent JFXStudio Holiday Challenge:

Happy Holidays [click to run]

In Java Today, Java Champion Bruce Hopkins looks at Bluetooth 4.0 - What does it mean?

Ok, so did you hear the news about Bluetooth 4.0? Now, you many be wondering, “Why are they announcing all these new features in Bluetooth 4.0, when there’s hardly any 3.0 devices available?”. True, I agree with you there — I wish that there would be more Bluetooth 3.0 devices available so that my camera can download pictures to my PC, which I think will be one of the major use cases for Bluetooth 3.0. Now, before I explain Bluetooth 4.0, I want you all to do a little experiment for me...

Adam Bien details Five Features that Make NetBeans 6.8 my IDE of Choice:

1. Out-of-the-box experience: with a single download, you get not only the IDE with all useful plugins, but also an application server (Glassfish v3) and an integrated database (Derby DB). The whole procedure takes few minutes and is dead simple. The only thing what can go wrong is installing the application server (Glassfish) to a directory, which contains spaces in its name on Windows. The Java package (is actually Java EE) is 146 MB for Mac OSX, but the feature list is impressive: profiler, debugger, SQL / DB explorer, JSF 2.0 editor with (CDI / EJB 3 databinding) auto-completion, sub second incremental deployment (=deploy on save), maven, ANT, Hudson, JIRA, SVN, mercurial support, HTML editor, nice Swing WYSIWYG editor, JSR-311 (REST), JSR-181 (SOAP) support...

Peligri announces Recordings of GlassFish Virtual Conference Now Available:

The recordings of the JavaEE 6 and GlassFish v3 Virtual Conference are now available. Slides are also available. Registration is required in both cases; enjoy! The VC was a great success; more info on it after the Holiday break...

In today's Weblogs, I'm including a new post by Cay Horstmann, and two posts that were temporarily lost during the recent outage.

In his new post, Cay wonders Is @javax.faces.bean.ManagedBean Dead on Arrival?:

Java EE 6 has three different ways of defining “beans” that are “managed” in one way or another. Here is a quick recap. JSR 314: JSF 2.0 introduced annotations to avoid the tedium of declaring managed beans in faces-config.xml ...

Last week, Lance Andersen wrote about Generating the JPA 2.0 Static MetaModel classes using Eclipselink 2.0 and Netbeans 6.8 for your Entity Classes:

Eclipselink 2.0 includes an annotation processor for generating the static metamodel classes from your Entity classes for use with the Criteria API which is one of the new features in JPA 2.0. Here is an example of generating the metamodel classes from the command line using the Eclipselink annotation processor...

Just before the outage, Vivek Pandey announced GlassFish gem 1.0.0 is available:

This is 1.0.0 release of GlassFish gem. This release is based on GlassFish v3 final release. Unlike other gem releases which used to get posted on the RubyForge gem repo. Now its pushed to Gemcutter. The end result is pushing is easy and the gem is available moments after its pushed. Also now I can see how many of each release get downloaded. To install, simply type the following on a JRuby installation...

In the Forums, mobilist is having problems rendering page created through Graphics Object with Sliding Transition: "Dear All! I am trying to render a set of pages with few components Like Menu Bar, Title Bar , Texts and some Images created through LWUIT Graphics object on a single Form. I am able to display the pages normally, but..."

cain05 gets a Glassfish V3 exception in JPADeployer when trying to deploy: "When I try to deploy my EAR I get an exception. I'm using Hiberate as my JPA provider. I downloaded hibernate using the update tool. I even tried using the hibernate jar files from my GF v2.1 install but they don't work either..."

noelopan is trying to use the JXMultiThumbSlider: "Has anyone succeeded in using this component? I see that even the swingx demo ignores it. There doesn't seem to be a default track or thumb renderer."

Our current Spotlight is Ed Ort's three part article series, Introducing the Java EE 6 Platform: "Java Platform, Enterprise Edition (Java EE) is the industry-standard platform for building enterprise-class applications coded in the Java programming language. Based on the solid foundation of Java Platform, Standard Edition (Java SE), Java EE adds libraries and system services that support the scalability, accessibility, security, integrity, and other requirements of enterprise-class applications..."

Our current Poll asks "Do you plan to upgrade to NetBeans IDE 6.8?" Voting will run through Thursday or Friday (depending on where you live).

We have a new Feature Article, my recent Interview with Java Champion Adam Bien: Java EE 8, Closures, and More. We're also featuring Jeff Friesen's Learn about JavaFX's APIs for Reading RSS and Atom Newsfeeds, which introduces you to the RSS and Atom APIs in JavaFX 1.2.

The latest Java Mobility Podcast is Java Mobile Podcast 92: MIDP 3.0 in Depth: Tutorials and Demonstrations: Excerpts from the JavaOne 2009 MIDP 3.0 In Depth: Tutorials and Demonstrations session with Roger Riggs, Lakshmi Dontamsetti and Stan Kao.

Current and upcoming Java Events:

Registered users can submit event listings for the Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.

Archives and Subscriptions: This blog is delivered weekdays as the Java Today RSS feed. Also, once this page is no longer featured as the front page of it will be archived along with other past issues in the Archive.

-- Kevin Farnham
O'Reilly Media

FeedReadfigure1.jpg78.96 KB
Related Topics >>