File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes Swing / AWT / SWT and the fly likes What is the expected behaviour of the cursor when a dialog appears? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Swing / AWT / SWT
Bookmark "What is the expected behaviour of the cursor when a dialog appears?" Watch "What is the expected behaviour of the cursor when a dialog appears?" New topic
Author

What is the expected behaviour of the cursor when a dialog appears?

Sean Keane
Ranch Hand

Joined: Nov 03, 2010
Posts: 581

What is the expected behaviour of the cursor state when a JDialog appears?

I have set up my application to set the cursor to the WAIT_CURSOR state when I am carrying out a long operation. Then I set it back to the DEFAULT_CURSOR state when the operation is complete.

If the operation does not complete successfully an exception is thrown then I display a JDialog with a user friendly error message.

When the JDialog appears my code to set the cursor state back to DEFAULT_CURSOR will not have excecuted yet as it is in a finally block. I was worried that my cursor would stay in the WAIT_CURSOR state and thus preventing the user from dismissing the JDialog that popped up or confusing them.

However I happy to see that the JDialog appearing automatically caused my cursor to go back to the DEFAULT_CURSOR state. So my question is - can I rely on the JDialog always setting my cursor back to the DEFAULT_CURSOR state? Or should I put putting in some code to set it back to DEFAULT_CURSOR before I show JDialog.

I have provided some sample code below that outlines my current set up. Simply run the code, click on the button, you will see the hour glass appear for 2 seconds, then a JDialog will appear. You can see from the console output that my code to set the cursor back to the DEFAULT_CURSOR state has not executed at this stage. It does not execute until you dismiss the JDialog.



SCJP (1.4 | 5.0), OCJP (6.0), OCMJD
Rob Spoor
Sheriff

Joined: Oct 27, 2005
Posts: 19785
    
  20

Hasn't nobody told you not to call Thread.sleep on the Event Dispatcher Thread? See Concurrency in Swing for more details.


SCJP 1.4 - SCJP 6 - SCWCD 5 - OCEEJBD 6
How To Ask Questions How To Answer Questions
Sean Keane
Ranch Hand

Joined: Nov 03, 2010
Posts: 581

Rob Spoor wrote:Hasn't nobody told you not to call Thread.sleep on the Event Dispatcher Thread? See Concurrency in Swing for more details.


Not sure how this helps? What I am looking for help on is...

What is the expected behaviour of the cursor state when a JDialog appears?

Can I rely on the JDialog always setting my cursor back to the DEFAULT_CURSOR state?
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: What is the expected behaviour of the cursor when a dialog appears?