Stage hide/show from Swing

Matthias Hänel haenel at ultramixer.com
Mon May 18 14:53:54 UTC 2015


thanks Tom for your answer.

I just tried to use Platform.setImplicitExit(false) but it didn't do anything different.
I suspect I should have this runLater behaviour for the second "start"/show phase. And hide will not close 
the JFX thread interanally. Still there is no Runable call at the second try.

PlatformImpl.runLater(new Runnable()
{
    @Override
    public void run()

is still not called :(



Matthias


> Am 18.05.2015 um 16:26 schrieb Tom Schindl <tom.schindl at bestsolution.at>:
> 
> So then simply call Platform.setImplicitExit(false)?
> 
> Tom
> 
> On 18.05.15 16:19, Matthias Hänel wrote:
>> Thanks Scott for your fast answer.
>> 
>> 
>> Well, in this case 
>> 
>> PlatformImpl.runLater(new Runnable()
>> {
>>    @Override
>>    public void run()
>> 	{
>> 		...
>> 
>> 
>> is never called. I believe it is not called because the Stage is not running anymore and 
>> therefore the JFX Main Thread is stopped.
>> 
>> I am now on 1.8.0_60 and have still the same behaviour :(
>> 
>> 
>> regards
>> Matthias
>> 
>> 
>> 
>> 
>>> Am 18.05.2015 um 14:17 schrieb Scott Palmer <swpalmer at gmail.com>:
>>> 
>>> I would have thought that #2 was correct. What happened when you tried it?
>>> Did you make sure JavaFX didn't try to shutdown automatically when the last Stage was hidden?
>>> 
>>> 
>>> Scott
>>> 
>>>> On May 18, 2015, at 7:37 AM, Matthias Hänel <haenel at ultramixer.com> wrote:
>>>> 
>>>> Hello there,
>>>> 
>>>> 
>>>> I have a stage that is been called from a Java Swing application. This is not a real problem
>>>> since I can run follwing code:
>>>> 
>>>> PlatformImpl.startup(new Runnable()
>>>> {
>>>>  @Override
>>>>  public void run()
>>>>  {
>>>>      myStage = new myStage();
>>>>      myStage.show();
>>>>  }
>>>> });
>>>> 
>>>> 
>>>> That works so far. 
>>>> 
>>>> No I would like to close this stage from the swing application. I can call:
>>>> 
>>>> Platform.runLater(new Runnable()
>>>> {
>>>>  @Override
>>>>  public void run()
>>>>  {
>>>>      myStage.hide();
>>>>  }
>>>> });
>>>> 
>>>> 
>>>> This also works. 
>>>> 
>>>> Since I have a toggle-Button to hide and show the stage from the swing application, I would like
>>>> to re-show the stage and I would like to know when the stage is showing or not. This seems to be nearly impossible by now.
>>>> 
>>>> What did I try?
>>>> 
>>>> 1. I tried to shutdown the javafx entire with com.sun.javafx.tk.Toolkit.getToolkit().exit(); in the hide process. So I expected to use PlatformImpl.startup again. Unfortunately, it did not work.
>>>> 
>>>> 2. I tried to leave javafx untouched. The second time I only call PlatformImpl.runLater to create a new scene.
>>>> 
>>>> 3. I tried to run it from the swing thread without Platform.run... ... this failed obviuosly. (I just had no further ideas ;)) 
>>>> 
>>>> 
>>>> Does anyone tried this before? Any advise will be helpful :)
>>>> 
>>>> 
>>>> 
>>>> Thanks in advance
>>>> Matthias
>>>> 
>>>> 
>>>> 
>> 
> 
> 
> -- 
> Thomas Schindl, CTO
> BestSolution.at EDV Systemhaus GmbH
> Eduard-Bodem-Gasse 5-7, A-6020 Innsbruck
> http://www.bestsolution.at/
> Reg. Nr. FN 222302s am Firmenbuchgericht Innsbruck



More information about the openjfx-dev mailing list