We help IT Professionals succeed at work.

Check out our new AWS podcast with Certified Expert, Phil Phillips! Listen to "How to Execute a Seamless AWS Migration" on EE or on your favorite podcast platform. Listen Now


how to pop up 2 JOptionPane at the same time? and set timer on JOptionPane (currently doing RMI client-server program)

ahmehmeh asked
Medium Priority
Last Modified: 2012-06-27
hi to all experts,
i m currently doing RMI client-server program, got a few questions want to ask.

suitation is like that:
there is 1 server to many clients. when each client connect to the server, they will display a list of all clients. client can then choose a client for a little 1-on1 game. when clientA invite clientB for a game, i want to pop up a JOptionPane to clientA saying "waiting for B reply.... u may cancel the game" and clientB will pop up a JOptionPane saying "A is inviting u for a game, YES_NO_OPTION". but since when the JOptionPane is shown, no other input or output will be accepted or sent to the monitor i can only pop up 1 JOptionPane at a time :(   And i would like to make a count down timer to both JOptionPane, say 15secods.... when the timer coun  down to 0, JOptionPane in both side will close and display..... "Time's up baby". and last time, before the timer is running out of time, if clientA click the "CANCEL" button, he/she can terminate the invitation.

so therefore the questions are:
1. how to pop up 2 JOptionPane (must be modal) to 2 clients at the same time?
2. how to set a count down timer to both JOptionPane, so that when the time is up, both JOptionPane will close
3. how to close the opposite JOptionPane (before the time is running out?)

many thanks to you all !
Watch Question

Top Expert 2006

You should use JDialog instead of JOptionPane.
Unlock this solution and get a sample of our free trial.
(No credit card required)

>You couldn't use modal dialog if you want the background process still active
and you can if you have done the process before show the dialog.


thanks :)

i have tried JDialog before, and set the 'modal' parameter to 'true', but still couldnt work (i.e. pop 2 up at the same time)
so what you guys mean, i cannot make these dialog to modal ?  :(

> have tried JDialog before, ... i cannot make these dialog to modal
Did you pass it a reference of parent frame (a frame which'll be under the dialog)?
If not, so modal shouldn't works (it needs a parent for modal)?


well... yes.. i hv pass it to the parent frame and set the modal to true... but it doesnt allow to pop up dialog at the same time...  and it only works (ie. pop up 2 dialog) if i set the modal to false :/

Yes .... you cann't show 2 modal dialogs on the same machine at the same time.

However, you can if they're on different VM (just a modal dialog per VM).

Hi, if you want to test your application with only 1 computer, you must  execute it in linux, in this way, you can have a lot of  clients and 1 server at the same time. (and the dialogs will be displayed)
Top Expert 2006

what you can do is to show your first modal JDialog with your Frame as owner and show your second JDialog with your first JDialog as owner.
Top Expert 2006

oops, i forgot what the original question was about and thought you needed 2 modal JDialogs on one client... which is not the case.
I suppose that you are currently using JOptionPane static show methods, which does not allow you to close the dialog progammatically.  That's why you sould use JDialog.
What you need to do is to create a new thread that handles the communication with the other client (invites the other client to play, and listen to the response).  You start that thread and then you show your modal JDialog.
Unlock the solution to this question.
Thanks for using Experts Exchange.

Please provide your email to receive a sample view!

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.


Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.