Slides from JavaOne 2008: Filthier, Richer, Clientier

Chet and I just posted our JavaOne 2008 slides online.

18 Responses to “Slides from JavaOne 2008: Filthier, Richer, Clientier”

  1. Any chance to see some YouTube thing about your presentation? :-)

  2. pollux says:

    Waow, what rapidity! So great, thanks a lot!
    I hope that you will have more time to post more oftently….

  3. Chet says:

    Fabrizio: We didn’t video the presentation, and I don’t think that the JavaOne folks did either. So unless someone in the audience was wasting time and memory on it, I think that the slides will have to suffice. Just read the slides while imagining us speaking flawlessly and giving a truly compelling and remarkable presentation. (That wasn’t the case, of course, but this way you’ll be more satisfied with your imagined event than you would be with a video of the real thing)

  4. broschb says:

    Looks good, always excited to see new stuff from Chet and you. Any chance the source for your demo’s will be posted?

  5. Thank you for publishing the slides. It’s very interesting for those who were not at J1 but reading the book to see how things evolve.

  6. clecuret says:

    Merci pour les slides; c’est rassurant de voir de nouveaux posts sur e blog qui devenait bien mort ces temps-ci… Est ce faute de temps ou parce qu’il y a moins d’intéret à publier sur java swing ?

  7. JPuppy says:

    What’s the state of BlendComposite on Linux? The last time I attempted to use it for painting to a screen I was getting NotImplemented exceptions.

  8. Romain Guy says:

    I am unfortunately incredibly busy with my work… I would love to blog more but the little spare time I have, I use it for other things :)

  9. Shu says:

    Sounds like a funebre walk for Swing/Java2D.
    Where does this leave us in terms of Java2D & Swing at Sun now that Chet has left Sun?

  10. Thomas Boerkel says:

    I am having a problem with the AnimatedTransitions library of the book, maybe you have a hint for me.
    I have a JTabbedPane and I’d like to animate the content of one tab (basically exchanging the content completely, which is a JPanel). There are nasty drawing effects if the user switches to another tab while the anim is being prepared or rendered (fade effect). The library then renders the content from the other tab into the tab that the user just switched to. Is this a known limitation or is there a way around it? Thanks!

  11. Chet says:


    There are definitely limitations to the animtrans library. The problem you’re running into here is that the transition is happening in the same container where tabbed components are being swapped around. The transition doesn’t know anything about the individual tabs that are being changed out from under it – it’s just running an animation when it’s told to.

    I think the best fix here, other than building more capabilities into the library, which probably won’t happen anytime soon, would be for you to detect the change and to stop the transition when it happens.


  12. Thomas Boerkel says:

    Thanks for the quick answer. But how do I stop the animation? :-)

  13. Thomas Boerkel says:

    One more question about the rendering: I thought, the transition is being rendered into the target container. But when I switch to another tab, the previous tab container is not visible anymore. So, why is the rendering then visible?

  14. Thomas Boerkel says:

    OK, stop() stops the Animation. But I get sometimes:
    Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException: glassPane cannot be set to null.
    at javax.swing.JRootPane.setGlassPane(
    at org.jdesktop.animation.transitions.ScreenTransition$1.end(
    at org.jdesktop.animation.timing.Animator.end(
    at org.jdesktop.animation.timing.Animator.stop(


  15. Chet says:


    stop() works. So does cancel() (which stops the animation in its tracks, without sending out an end event).

    I believe the tab artifact is because a tabbed pane just fakes separate components for each tab. They’re all just in the same container; the tabs are just like buttons that change the drawing in that single component.

    As to the glass pane error you’re getting, I don’t know off-hand; I’d have to debug the situation (which unfortunately isn’t possible, as I’m pretty busy working on pretty unrelated stuff at the moment). Hopefully, between the ability to insert yourself in the animation process, to debug the source code, and to change the code to your heart’s content, you can make it do what you need it to.


  16. Thomas Boerkel says:

    I got the stopping working reliable now. But I think there is a memory leak. After doing some transitions, I got lots of short[] in memory, occupying >20MB that are not being freed by GC. Looking at the heap dump, they are being held by ScreenTransition, OffScreenImage, WinCachingSurfaceManager and other classes that sound like the Animation library.
    If I do not use animations, then my heap ends up much smaller.
    I set my Animation object reference to null after the animation (in the end() method of the TimingTarget), so I should not hold any references.
    Any ideas?

  17. Thomas Boerkel says:

    I can reproduce the leak in a small test program. But it seems, it only happens with Window Look&Feel. Any ideas?

  18. Thomas Boerkel says:

    This is already being discussed here: