Stage hide/show from Swing

Tom Schindl tom.schindl at bestsolution.at
Mon May 18 15:13:20 UTC 2015


It is important to make this call at startup? Are you doing this?

Tom

Von meinem iPhone gesendet

> Am 18.05.2015 um 16:53 schrieb Matthias Hänel <haenel at ultramixer.com>:
> 
> 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