Re: JFrame / JDialog issue - Info about Threads?
Hi Kent,
i already thought of an additional process/thread, too - but frankly iīm
not too deep into that, so i really canīt give any advise in that field,
hopefully Swapnil or somebody else can...
your option 1) live with it...
Cīmon - we programmerīs just donīt wanna live with a problem, we can
solve it so can you ;) ( btw - anybody has life experience with threads? )
Sorry that i couldnīt help you out...
Volker
Kent wrote:
> Hi Volker / Swapnil,
>
> No, a non-modal dialog wouldn't suit my needs. I really don't want the user
> to interact with the frame that opens the dialog - just the frame that doesn't.
> Also Volker, your suggestion of disabling controls in the opening frame would
> be feasible for a smaller application but unfortunately my app is just too
> big - dialogs being opened from dialogs etc.
>
> By the sounds of it it's simply not possible (single thread for UI). So I
> guess my options are:
>
> 1. live with it
> 2. open second frame in a second process
>
> Option 1 is probably what I'll go with but I'm also interested in option
> 2. My question would be how I can get the two processes to communicate with
> each other.
>
> I know I can start the second process via one of the Runtime.exec() methods
> but how can I easily communicate between processes? Using the input / output
> streams of the processes somehow?
>
> Thanks,
> Kent
>
>
> Volker Held <vheld@gwdg.de> wrote:
>
>>Hi Kent, Hi Swapnil,
>>
>>@ Swapney:
>>I think kentīs idea was that he blocks one frame but still has access to
>>
>
>>the other - problem is, you have make a modal dialog - i think non-modal
>>
>
>>wouldnīt suit his needs....
>>
>>@ Kent:
>>Iīm using 1.3.1_02 - maybe this issue is adressed in 1.4 but i cannot
>>tell yet. ( If you have any knowledge about that Swapnil, please tell us.
>>
> )
>
>>One way to simulate window modal dialogs might be to set all components
>>
>
>>on the "calling" window/frame to enabled = false and when the dialog
>>closes you have to re-enabled them...
>>Dunno if thatīs a reasonable idea, but it may be worth a try....
>>
>>Volker
>>
>>Swapnil wrote:
>>
>>>Hi,
>>>
>>>It seems you have set the JDialog to Modal using setModal(boolean). Once
>>>a Modal JDialog is visible it blocks all user events for other windows.
>>>
> Swing
>
>>>events are dispatched on single thread i.e. Swing is Single Threaded.
>>>
> That
>
>>>is why once the Modal JDialog captures all events you cannot do anything
>>>in that particular JVM itself.
>>> You may try using Non-Modal JDialog if it suits your requirement.
>>>
> As
>
>>>of JDK 1.3 Non-Modal JDialog allow user to do something in other windows
>>>but it stays on top always.
>>>
>>>Cheers,Swapnil
>>>
>>>
>>
>
Re: JFrame / JDialog issue - Info about Threads?
Hi Kent,Volker,
Refered Java version:JDK 1.3.1_02
I am clear about Kents requirement:
"No Access to a JFrame if it has a JDialog as a child window."
I hope you are specifying the JFrame as parent in constructor of your JDialog.
Some possible solutions/workarounds:
1. Surely u cannot use Modal JDialog.
2. Use Non-modal JDialog and consume all events whose source is the Parent
JFrame or it's sub-components.
Regards,Swapnil
Volker Held <vheld@gwdg.de> wrote:
>Hi Kent,
>
>i already thought of an additional process/thread, too - but frankly iīm
>not too deep into that, so i really canīt give any advise in that field,
>hopefully Swapnil or somebody else can...
>
>your option 1) live with it...
>Cīmon - we programmerīs just donīt wanna live with a problem, we can
>solve it so can you ;) ( btw - anybody has life experience with threads?
)
>
>Sorry that i couldnīt help you out...
>
>Volker
>
>Kent wrote:
>> Hi Volker / Swapnil,
>>
>> No, a non-modal dialog wouldn't suit my needs. I really don't want the
user
>> to interact with the frame that opens the dialog - just the frame that
doesn't.
>> Also Volker, your suggestion of disabling controls in the opening frame
would
>> be feasible for a smaller application but unfortunately my app is just
too
>> big - dialogs being opened from dialogs etc.
>>
>> By the sounds of it it's simply not possible (single thread for UI). So
I
>> guess my options are:
>>
>> 1. live with it
>> 2. open second frame in a second process
>>
>> Option 1 is probably what I'll go with but I'm also interested in option
>> 2. My question would be how I can get the two processes to communicate
with
>> each other.
>>
>> I know I can start the second process via one of the Runtime.exec() methods
>> but how can I easily communicate between processes? Using the input /
output
>> streams of the processes somehow?
>>
>> Thanks,
>> Kent
>>
>>
>> Volker Held <vheld@gwdg.de> wrote:
>>
>>>Hi Kent, Hi Swapnil,
>>>
>>>@ Swapney:
>>>I think kentīs idea was that he blocks one frame but still has access
to
>>>
>>
>>>the other - problem is, you have make a modal dialog - i think non-modal
>>>
>>
>>>wouldnīt suit his needs....
>>>
>>>@ Kent:
>>>Iīm using 1.3.1_02 - maybe this issue is adressed in 1.4 but i cannot
>>>tell yet. ( If you have any knowledge about that Swapnil, please tell
us.
>>>
>> )
>>
>>>One way to simulate window modal dialogs might be to set all components
>>>
>>
>>>on the "calling" window/frame to enabled = false and when the dialog
>>>closes you have to re-enabled them...
>>>Dunno if thatīs a reasonable idea, but it may be worth a try....
>>>
>>>Volker
>>>
>>>Swapnil wrote:
>>>
>>>>Hi,
>>>>
>>>>It seems you have set the JDialog to Modal using setModal(boolean). Once
>>>>a Modal JDialog is visible it blocks all user events for other windows.
>>>>
>> Swing
>>
>>>>events are dispatched on single thread i.e. Swing is Single Threaded.
>>>>
>> That
>>
>>>>is why once the Modal JDialog captures all events you cannot do anything
>>>>in that particular JVM itself.
>>>> You may try using Non-Modal JDialog if it suits your requirement.
>>>>
>> As
>>
>>>>of JDK 1.3 Non-Modal JDialog allow user to do something in other windows
>>>>but it stays on top always.
>>>>
>>>>Cheers,Swapnil
>>>>
>>>>
>>>
>>
>
>