What is the difference between a JFrame
and a JDialog
?
Why can\'t we use setDefaultCloseOperation(JDialog.EXIT_ON_CLOSE);
for a JD
There are some JDialog
constructors with a owner
parameter which can be a Frame
, a Dialog
or a Window
. A non-null value also makes the JDialog
stay above his owner. This is complementary of the modal behavior described by Fortran.
Why we can't use
setDefaultCloseOperation(JDialog.HIDE_ON_CLOSE);
forJDialog
?
Sure you can.
Post your SSCCE that demonstrates the problem you are having when using this value.
However you can't use EXIT_ON_CLOSE
for a JDialog
because that value is not supported which makes sense since a JDialog
is a "child" or "helper" window for your application which is represented by a JFrame
. Closing a dialog should not close the application.
JFrame
is a normal window with its normal buttons (optionally) and decorations. JDialog
on the other side does not have a maximize and minimize buttons and usually are created with JOptionPane
static methods, and are better fit to make them modal (they block other components until they are closed).
But both inherit from Window, so they share much functionality.
You can also use setModal(boolean t);
This only works on JDialog
. User must operate on JDialog
not other window. If they wanna operate owner windows, they must shut down this JDialog
.