NetBeans 6 delivers great updates to the Matisse GUI builder. Spend a few minutes with Roman Strobl and get an expert briefing on what's new and what has changed. (sponsored)
In this, the third and final installation of Andres' Introduction to Groovy series, you learn about how Groovy handles variable numbers of arguments, named parameters, currying, and more about Groovy operators. Including, some new operators.
Swing Fuse (actually just Fuse), is a framework designed to make it easier to create your own custom desktop components. In this article, Daniel Spiewak shows you how to get started and provides sample source code you can download.
Willam Louth shows how he uses JXInsight Probes to investigate probable performance issues with code bases that he is not familiar with. He also highlights possible pitfalls in creating a benchmark, as well as in the analysis of results.
In Chet Haase and Romain Guy's "
Filthy Rich Clients: Developing Animated and Graphical Effects for Desktop Java Applications
", a 'filthy rich client' is described as "a term that we coined to refer to applications that are so graphically rich that they ooze cool. They suck users in from the outset and hang onto them with a death grip of excitement. They make users tell their friends about the applications. In short, they make users actually
enjoy
their application experience."
Then the authors continue by discussing the graphical and animated effects that lie at the heart of their book. The techniques they have developed apply very specifically to the programming environment of Java and Swing. One application that is grounded in that environment is
NetBeans IDE
. The beauty of NetBeans IDE in the context of 'filthy rich clients' is that it can be
extended
via plugins. Hence, to turn NetBeans IDE truly into a filthy rich client is completely possible, by creating plugins that leverage the techniques that Chet and Romain describe.
In the screenshot below are two examples that illustrate this point:
First, in the lower part of the screen, above, one sees a magnifying glass, in a separate
JLayeredPane
, as described in chapter 10 of the book. In the upper part, a custom layout manager, called
StackLayout
, is used to add a component bearing a photo to the top or the bottom of the stack, creating the illusion of depth. Both these samples come straight from the
Filthy Rich Client
site, where all 82 samples discussed in the book are found.
But how
useful
are these techniques? Or are they just pretty? And don't they slow down the performance of the application? Well, unsurprisingly, the answer to all these questions is: "That depends." The book provides ample warnings of the danger of throwing in meaningless special effects. In addition, threading, for example, is discussed in quite some detail, and many techniques are provided for ensuring that the special effects and animations do not negatively impact performance or the user's general experience of the application.
In the next part, we will look at one example in a little bit of detail, in the context of NetBeans IDE. We will use the example from chapter 9 in the book, to make use of NetBeans IDE's
glass pane
to simulate a download experience. When the user selects a menu item in NetBeans IDE, NetBeans IDE's glass pane will be shown, greying out the entire surface of the application, and showing a progress bar on top of it. Does NetBeans IDE have a glass pane? Yes of course. It is really just another Swing application!
"Filthy Rich Clients" is an attempt to create a buzz-buzzword. A buzzword on top of yet another one. And that other one ("Rich Clients") didn't take of, too.
The "rich client" fad is just old wine in new skins. Think client/server applications. A several decade old concept. And what does "filthy" add to it? Nothing. "enjoy their application experience" you say? Puh-leez, what a bunch of hot air. As if the millions of programmers doing GUIs in the past didn't try to do that. As if the filthy authors suddenly found the holly grail of HCI by adding eye candy to applciations. Years ago it was called "the people dimension", now they call it "filthy". Move along, nothing new to see here.
So many GUIs are bad not because of a lack of filthiness, but because they are done on a limited budget, with limited tools, by programmers with limited skills, in limited time, based on unclear requirements and with a lack of focus. Fix any of these issues and you have a better GUI for your applications. Oh, sorry, for your "rich client".
You seem like a very angry person. "Filthy Rich Clients" is mostly a joke that Chet came up with for a JavaOne presentation. We did not find any holy grail, nor claim that we did. But we explain Swing and Java 2D and show you how you can get the most of those technologies.
Thanks for the interesting article. Makes me want to read the Filthy Rich Client book. Java on the desktop is an old thing. True.
But like wine, it's getting better with the time. I've now developed web applications for a while and I'm just
tired of all this web application's "hell" and non-sense which consists in fighting with poor technologies
(javascript,...) to TRY to create "desktop alike" applications running through somehow unadequat
web browsers.
As soon as averyone will get tired of putting so much energy in this, I think that java desktop
applications will play again an increasing role.
Nicolas, I agree with you. I prefer the desktop too. And Swing is nice to work with. Plus, you don't have the extra server-layer to debug (i.e., with a web app, your problems are not confined to your code, but also to the server, the network, the this, the that, the state of the moon, etc). On top of that, yes, I think you should get that book. It's a classic already and it's only just been released.
> So many GUIs are bad not because of a lack of
> filthiness, but because they are done on a limited
> budget, with limited tools, by programmers with
> limited skills, in limited time, based on unclear
> requirements and with a lack of focus. Fix any of
> these issues and you have a better GUI for your
> applications. Oh, sorry, for your "rich client".
First, if you read the FRC book, you'd discover that it's not only about making a Swing UI "cool", but also efficient. We all know that Swing has gone out of the limbo only a few years ago and there are a lot of bad programming habits around. Often people perceive it as "slow" when they just need to do things in a different way.
Second, yes, there are a lot of circumstances in which a GUI just doesn't need to be "cool": usually it's when it's aimed at technicians (e.g a management monitor, a stock trading app, etc...). Fine. But if you like to develop for end-users, "coolness" is a forced choice. Just look around at Vista, Mac OS X and the incoming Gutsy Gibbons: people spent a lot of time for implementing cool features. I bet there's a meaning.
NetBeans IDE: Filthy Rich Client? (Part 1)
At 1:19 PM on Sep 28, 2007, Geertjan wrote:
Fresh Jobs for Developers Post a job opportunity
Then the authors continue by discussing the graphical and animated effects that lie at the heart of their book. The techniques they have developed apply very specifically to the programming environment of Java and Swing. One application that is grounded in that environment is NetBeans IDE . The beauty of NetBeans IDE in the context of 'filthy rich clients' is that it can be extended via plugins. Hence, to turn NetBeans IDE truly into a filthy rich client is completely possible, by creating plugins that leverage the techniques that Chet and Romain describe.
In the screenshot below are two examples that illustrate this point:
First, in the lower part of the screen, above, one sees a magnifying glass, in a separate JLayeredPane , as described in chapter 10 of the book. In the upper part, a custom layout manager, called StackLayout , is used to add a component bearing a photo to the top or the bottom of the stack, creating the illusion of depth. Both these samples come straight from the Filthy Rich Client site, where all 82 samples discussed in the book are found.
But how useful are these techniques? Or are they just pretty? And don't they slow down the performance of the application? Well, unsurprisingly, the answer to all these questions is: "That depends." The book provides ample warnings of the danger of throwing in meaningless special effects. In addition, threading, for example, is discussed in quite some detail, and many techniques are provided for ensuring that the special effects and animations do not negatively impact performance or the user's general experience of the application.
In the next part, we will look at one example in a little bit of detail, in the context of NetBeans IDE. We will use the example from chapter 9 in the book, to make use of NetBeans IDE's glass pane to simulate a download experience. When the user selects a menu item in NetBeans IDE, NetBeans IDE's glass pane will be shown, greying out the entire surface of the application, and showing a progress bar on top of it. Does NetBeans IDE have a glass pane? Yes of course. It is really just another Swing application!
Update: Continue to part 2 or part 3 .
7 replies so far (
Post your own)
Re: NetBeans IDE: Filthy Rich Client? (Part 1)
"Filthy Rich Clients" is an attempt to create a buzz-buzzword. A buzzword on top of yet another one. And that other one ("Rich Clients") didn't take of, too.The "rich client" fad is just old wine in new skins. Think client/server applications. A several decade old concept. And what does "filthy" add to it? Nothing. "enjoy their application experience" you say? Puh-leez, what a bunch of hot air. As if the millions of programmers doing GUIs in the past didn't try to do that. As if the filthy authors suddenly found the holly grail of HCI by adding eye candy to applciations. Years ago it was called "the people dimension", now they call it "filthy". Move along, nothing new to see here.
So many GUIs are bad not because of a lack of filthiness, but because they are done on a limited budget, with limited tools, by programmers with limited skills, in limited time, based on unclear requirements and with a lack of focus. Fix any of these issues and you have a better GUI for your applications. Oh, sorry, for your "rich client".
Re: NetBeans IDE: Filthy Rich Client? (Part 1)
And what's wrong with old wine in new skins?Re: NetBeans IDE: Filthy Rich Client? (Part 1)
You seem like a very angry person. "Filthy Rich Clients" is mostly a joke that Chet came up with for a JavaOne presentation. We did not find any holy grail, nor claim that we did. But we explain Swing and Java 2D and show you how you can get the most of those technologies.Romain Guy's Java Weblog, #ProgX, Jext
Re: NetBeans IDE: Filthy Rich Client? (Part 1)
I for one love the name. The book is one of the best I've read in a long time. Great work guys!Re: NetBeans IDE: Filthy Rich Client? (Part 1)
Thanks for the interesting article. Makes me want to read the Filthy Rich Client book. Java on the desktop is an old thing. True.But like wine, it's getting better with the time. I've now developed web applications for a while and I'm just
tired of all this web application's "hell" and non-sense which consists in fighting with poor technologies
(javascript,...) to TRY to create "desktop alike" applications running through somehow unadequat
web browsers.
As soon as averyone will get tired of putting so much energy in this, I think that java desktop
applications will play again an increasing role.
Re: NetBeans IDE: Filthy Rich Client? (Part 1)
Nicolas, I agree with you. I prefer the desktop too. And Swing is nice to work with. Plus, you don't have the extra server-layer to debug (i.e., with a web app, your problems are not confined to your code, but also to the server, the network, the this, the that, the state of the moon, etc). On top of that, yes, I think you should get that book. It's a classic already and it's only just been released.Re: NetBeans IDE: Filthy Rich Client? (Part 1)
> So many GUIs are bad not because of a lack of> filthiness, but because they are done on a limited
> budget, with limited tools, by programmers with
> limited skills, in limited time, based on unclear
> requirements and with a lack of focus. Fix any of
> these issues and you have a better GUI for your
> applications. Oh, sorry, for your "rich client".
First, if you read the FRC book, you'd discover that it's not only about making a Swing UI "cool", but also efficient. We all know that Swing has gone out of the limbo only a few years ago and there are a lot of bad programming habits around. Often people perceive it as "slow" when they just need to do things in a different way.
Second, yes, there are a lot of circumstances in which a GUI just doesn't need to be "cool": usually it's when it's aimed at technicians (e.g a management monitor, a stock trading app, etc...). Fine. But if you like to develop for end-users, "coolness" is a forced choice. Just look around at Vista, Mac OS X and the incoming Gutsy Gibbons: people spent a lot of time for implementing cool features. I bet there's a meaning.
weblogs.java.net/blog/fabriziogiudici, www.tidalwave.it/blog
Member of the NetBeans Dream Team.