JFXPanel

Werner Lehmann lehmann at media-interactive.de
Wed Jan 2 10:25:47 PST 2013


Hi Anthony,

On 24.12.2012 11:18, Anthony Petrov wrote:
> The only way to implement this reliably is to use the handle to the
> native Swing window as an owner for the FX dialog, which is not
> currently possible unfortunately.

that would be a wet dream. Being able to use a dialog owner Stage *or 
JFrame or JDialog or awt.Window* for modality and z-order.

> I understand the need for this completely. However, I doubt this
> possibility would be useful for FX in the long run, especially given
> that workarounds exist. For example, you could use a Swing modal dialog
> to achieve the same result - just put your modal FX content into another
> JFXPanel and embed it into the JDialog. Or, as you're suggesting above,

This is the only real option here, in my opinion. But the code for this 
is more convoluted than it should be (e.g. EDT/FX sync code etc). And 
for a migration path Swing to FX this means to touch all those dialogs 
twice:

1. replace JDialog content with JFXPanel, and later
2. replace JDialog with Stage

The second step can only be started when the whole parent chain is in FX 
land. This means there will be one point in time where we need to switch 
the main window from JFrame to Stage and immediately change every other 
window in the app from JDialog to Stage (because JDialog does not accept 
a Stage owner). That does not sound like a good option to me, for 
non-trivial applications.

> you could disable the panel manually which wouldn't fix the z-order but
> at least would provide some kind of modality. A third approach is to get

Nightmarish, and proper z-order is not optional...

> rid of the JFXPanel altogether and put your FX content into a real FX
> top-level window.

With the current "FX embedded in Swing" method this can only be the 
ultimate step, when everything else is already converted to FX. This is 
a few years away in our case. Things would be better if there was an 
option to use the "Swing embedded in FX" model because then we could 
slowly push out Swing top down. But that's not how it works now.

Rgds
Werner


More information about the openjfx-dev mailing list