Question: I just want to implement a status dialog. How to show a JDialog which blocks the user input but allow the parent window processing its own work?

Answer: 
You can use a modal JDialog or JOptionPane (which really is nothing more than a specialized modal JDialog) for this, just be sure to

* the work is not to be done in a parent "window"
* but rather it should be done in a background thread
* and this thread should be started prior to setting the dialog visible.
* Use a SwingWorker for this background thread, and then your dialog can display quantitative progress information by adding a PropertyChangeListener and having the SwingWorker update its progress property.
[JOptionPane](http://docs.oracle.com/javase/7/docs/api/index.html?javax/swing/JOptionPane.html) with `JOptionPane.showXXXDialog();` static methods, what else ?