I recently struggled trying to text in a JavaFX ListView to wrap inside the container like I asked it to, rather than extend (and disappear) past the boundaries of the container. After some discussion on Twitter and a bit of Googling, I found an answer that I thought I’d share here to, perhaps, save someone some time.
In a project I’m working on for my book, I need to share classes between two applications. One, an Android project, requires Java 8. The other, a desktop JavaFX application, needs to run under Java 9, complete with module support. The problem with this is that the Maven tooling isn’t quite ready for Java 9, so it’s not as simple as I would like. I have, however, found a solution that seems to work.
In my work on my book, I’ve spent quite a bit of time with JavaFX. In the chapter I just submitted, I wrote the application using the NetBeans RCP, which I think is a great piece of software. My only "complaint", I think, is more of a philosophical one more than a technical one, and even stating it that way is probably really over-selling it: for the most part, to use the RCP is to use Swing. Sure, you can use JavaFX in the application, but it seems you have to hold your mouth just right to get two-way data flow working. Possible, but it seems like a bit of work.
At any rate, while casting around The Tubes to track down advice on how to solve one problem or another, I ran across a couple of more modern application frameworks that look really promising, Drombler FX and the Dolphin Platform. Both look pretty slick, but the former seems to be backed by "only one guy" and might be a bit slow moving, while Dolphin is backed by Canoo and, more specifically, Michael Heinrichs, Hendrik Ebbers, Dierk König.
Once I finish this book and have more time to play with shiny new things, I need to give both of these a spin.
I should probably note, though, that there’s nothing really wrong with the NetBeans RCP in any real technical sense (beyond the 'no software is perfect' notion). I just like shiny things. I did, though, successfully create my RCP app and found the experience to be quite nice. If you need a desktop application, you should definitely check out the RCP.
In the same region there were some shepherds staying out in the fields and keeping watch over their flock by night. And an angel of the Lord suddenly stood before them, and the glory of the Lord shone around them; and they were terribly frightened. But the angel said to them, "Do not be afraid; for behold, I bring you good news of great joy which will be for all the people; for today in the city of David there has been born for you a Savior, who is Christ the Lord. This will be a sign for you: you will find a baby wrapped in cloths and lying in a manger." And suddenly there appeared with the angel a multitude of the heavenly host praising God and saying,
"Glory to God in the highest, And on earth peace among men with whom He is pleased."
Perhaps I’m a bit of a glutton for punishment, but I have an odd addiction to nightly builds. In working on this book, I need to use NetBeans 9, which, of course, is not out yet. They are, however, publishing nightly builds. Being a command line guy at heart, I’d prefer not to have to go to the download page every time, so I did what any good geek would do: I wrote a script. It’s not pretty, and it’s not very fault tolerant, but it seems to work well enough. If you’re a fellow addict, here you go:
#!/bin/bash VERS=`curl -s http://bits.netbeans.org/netbeans/trunk/nightly/latest/js/build_info.js | grep BOUNCER_PRODUCT_PREFIX | cut -f 2 -d \"` FILE=$VERS-javase.zip cd ~/Downloads if [ ! -e $FILE ] ; then wget http://bits.netbeans.org/netbeans/trunk/nightly/latest/zip/$FILE if [ -e $FILE ] ; then rm -rf netbeans unzip $FILE fi fi
A few weeks ago, I was approached by an acquisition editor with Packt Publishing, asking if I might be interested in working on a book with them. Long story short, I signed the paper work and started working on the title Java 9 Blueprints. Books in Packt’s Blueprints series offer a different project in each chapter, showing each is built, explaining the technologies used, etc. So far, it feels a lot like what I aim for in my blog posts, only longer. The target release is Q1 of next year. I have a lot of work ahead of me. :)
- Java 9 Programming Blueprints
- Tips for Writing Pluggable Java EE Applications
- JSFTemplating and Woodstock: Component Authoring Made Easy
- Jason Lee in depth: Mojarra and Scales
- Jason Lee: Postmortem for JavaOne 2008
- International Environmental: A Cooling Company Which Prefers Hot Software
- IEC donates custom JSF component to Mojarra Scales