Swing links of the week: February 3, 2008
February 3rd, 2008 | 3 Comments »Here are some Swing links that you might have missed during this week:
- Chris Campbell introduces Effects Framework, the third major component of Scene Graph project. Some of the effects seem to be based on Romain’s original work on new blending modes, and some look to bring Photoshop-based functionality to Java and JavaFX applications.
- Speaking of the JavaFX focus in the upcoming 6.0 update N, there are two very interesting bug reports in the bug parade. 6656651 talks about native font rasterizing (at least on Windows platform) and 6655001 hints on support for translucent and arbitrarily shaped top-level windows, backed up by hardware acceleration on Windows Vista.
- The Groovy community continues charging ahead with wrapping complex Java2D code in simpler builders. Andres Almiray announces release 0.4.5 of GraphicsBuilder with support for more than 60 filters. Two examples that show the power of JHLabs filters and the simplicity in which they are exposed in GraphicsBuilder can be found here and here. Andres also kicks off the first part of his tutorial on DZone, and Dave Cherry rounds up with the support for JFreeChart library.
- Nazmul Idris continues his tutorials on SwingX components. This week he features the tutorials on task pane containers and busy labels.
- Jesse Kuhnert writes a rather misguided rant about Swing. The three points that he mentions as Swing’s worst parts are quite easily addressed. The core layout managers are indeed terrible – but what about the great third-party layout managers? A possible analogy for the web development would be doing everything in pure HTML (and its deficiencies with using tables for everything) instead of using much more flexible CSS layouts. The next point is about rendering hints and has been addressed in Chet’s blog. One can also employ more advanced techniques such as bytecode injection. And since when web developers had access to rendering hints? The last point is about signals and slots. Not sure how this relates to Swing. Perhaps something like Event Bus project?
- Fabrizio Giudici continues one of the points touched on in the previous item. His post shows how he is using bytecode injection to add property change support to Java beans.
Hello,
I think (about J.Kuhnerts) that signals and slots are terms taken from Trolltech’s QT.
Maybe he was talking about Events and listeners in Swing.
Regarding “stuff I said”.
Yeah the signal slot wording probably does come from interactions with QT.
I don’t know why the myth that CSS flow-based layouts are always better than tables is still around – I’m assuming it was to prevent horrible rendering performance on sites that use hundreds of nested tables to lay things out. CSS table layouts actually are inappropriate / unnecessary in many places where simple tables do make sense – with the caveat that you shouldn’t abuse them. (hence it being easier to say don’t use them than explain that using too many is also bad) You can actually accomplish a great deal in HTML without using any css or embedded style directives at all. The opposite can not be said of CSS.
Either way adding some CSS support for laying out Swing stuff sounds like a fun idea.
Rendering hints are a term I’ve possibly mis-used to describe how many c++ based gui toolkits have common good “default” behaviors for things where the default set of components/layout managers tend to make you angry. Such as knowing that a JList almost always wants to fill the space it is placed in. (when that same sensible default layout logic is applied to all components it starts to make the toolkit more pleasurable to use – ie doing what developers want/expect vs. whatever is academically / backwards compatibly correct – as is a common issue with java related technologies in general)
I of course do think highly of Swing in general – my point was meant to focus more on web browser rendering abstractions being a far far cry from Swing / desktop GUI toolkit rendering abstractions – esp when it comes to building and composing multiple “things” in a view and how they interact and effect each others layout and what is really important in web development at the end of the day…..which is HTML / CSS / JavaScript.
[...] new friend Kirill has reminded me of another constant source of vomiting when he made some observations about my anti-Swing web [...]