If you plan to create desktop business applications, you'll miss one thing in JavaFX: A real desktop pane with internal frames.
We did some experiments with Window and had following problems:
- Mouse cursor was changed to resize but not back to default
- Resize operation moved the window to totally different positions
- It was possible to drag the window out of the parent node
- Components were set to managed (false) -> a lot of layouting problems
- Missing maximize functionality
- Problems with focus handling
- Title wasn't always shown
- No tab/window mode switching option
It was not a real internal frame, as we knew it from Swing. And a desktop pane/window manager wasn't available, which could be used to manage active/inactive windows/frames.
Our customers won't work without MDI because they need more than one frame, because of different reasons. Sure it depends on the application and use case but big applications without internal frames are a No-Go.
So we thought that it's the right time to start with a real desktop implementation with internal frames. Here are some imporessions:
We need better styles for the frames and some nice icons, but this isn't a big problem because we use stylesheets for everything. The implementation isn't production ready at the moment, but we solved most problems and made good progress.
The current desktop/frames knew the difference between active and inactive, it possible to minimize/iconify frames, focus handling works, maximization is possible and it's possible to switch between frame and tab mode. Dragging works like a charm.
Our implementation will be a real replacement for Swing' internal frames. It's part of our JavaFX UI implementation for JVx.