Examples and practices described in this page don't take advantage of improvements introduced in later releases and might use technology no longer available. A Dialog window is an independent subwindow meant to carry temporary notice apart from the main Swing Application Window. Most Dialogs present an error message or warning to a user, but Dialogs can present images, directory trees, or just about anything compatible with the main Swing Application that manages them. For convenience, several Swing component classes can directly instantiate and display dialogs. To create simple, standard dialogs, you use the JOptionPane class.
|Published (Last):||20 March 2009|
|PDF File Size:||16.82 Mb|
|ePub File Size:||13.37 Mb|
|Price:||Free* [*Free Regsitration Required]|
Examples and practices described in this page don't take advantage of improvements introduced in later releases and might use technology no longer available.
A Dialog window is an independent subwindow meant to carry temporary notice apart from the main Swing Application Window. Most Dialogs present an error message or warning to a user, but Dialogs can present images, directory trees, or just about anything compatible with the main Swing Application that manages them.
For convenience, several Swing component classes can directly instantiate and display dialogs. To create simple, standard dialogs, you use the JOptionPane class. The ProgressMonitor class can put up a dialog that shows the progress of an operation. To bring up a print dialog, you can use the Printing API. To create a custom dialog, use the JDialog class directly. Every dialog is dependent on a Frame component.
When that Frame is destroyed, so are its dependent Dialogs. When the frame is iconified, its dependent Dialogs also disappear from the screen. When the frame is deiconified, its dependent Dialogs return to the screen. A Dialog can be modal. When a modal Dialog is visible, it blocks user input to all other windows in the program. JOptionPane creates JDialog s that are modal. To create a non-modal Dialog, you must use the JDialog class directly. Dialog class. It adds a root pane container and support for a default close operation to the Dialog object.
The reason is that JOptionPane is simply a container that can automatically create a JDialog and add itself to the JDialog 's content pane. Using JOptionPane , you can quickly create and customize several different kinds of dialogs. JOptionPane provides support for laying out standard dialogs, providing icons, specifying the dialog title and text, and customizing the button text. Other features allow you to customize the components the dialog displays and specify where the dialog should appear onscreen.
You can even specify that an option pane put itself into an internal frame JInternalFrame instead of a JDialog. When you create a JOptionPane , look-and-feel-specific code adds components to the JOptionPane and determines the layout of those components. JOptionPane 's icon support lets you easily specify which icon the dialog displays. You can use a custom icon, no icon at all, or any one of four standard JOptionPane icons question, information, warning, and error. Each look and feel has its own versions of the four standard icons.
The following figure shows the icons used in the Java and Windows look and feel. For most simple modal dialogs, you create and show the dialog using one of JOptionPane 's show Xxx Dialog methods.
If you need to control the dialog window-closing behavior or if you do not want the dialog to be modal, then you should directly instantiate JOptionPane and add it to a JDialog instance. Then invoke setVisible true on the JDialog to make it appear. The showMessageDialog method displays a simple, one-button dialog. The other two show Xxx Dialog methods are used less often. A fourth method, showInputDialog , is designed to display a modal dialog that gets a string from the user, using either a text field, an uneditable combo box or a list.
Here are some examples, taken from DialogDemo. For more example code, see DialogDemo. The arguments to all of the show Xxx Dialog methods and JOptionPane constructors are standardized, though the number of arguments for each method and constructor varies.
The following list describes each argument. The JOptionPane constructors do not include this argument. You can either let the option pane display its default icon or specify the icon using the message type or icon argument.
By default, an option pane created with showMessageDialog displays the information icon, one created with showConfirmDialog or showInputDialog displays the question icon, and one created with a JOptionPane constructor displays no icon. To specify that the dialog display a standard icon or no icon, specify the message type corresponding to the icon you desire. To specify a custom icon, use the icon argument. The icon argument takes precedence over the message type; as long as the icon argument has a non-null value, the dialog displays the specified icon.
When you use JOptionPane to create a dialog, you can either use the standard button text which might vary by look and feel and locale or specify different text.
By default, the option pane type determines how many buttons appear. The following code, taken from DialogDemo. The first dialog is implemented with showConfirmDialog , which uses the look-and-feel wording for the two buttons. The second dialog uses showOptionDialog so it can customize the wording. With the exception of wording changes, the dialogs are identical. As the previous code snippets showed, the showMessageDialog , showConfirmDialog , and showOptionDialog methods return an integer indicating the user's choice.
Even if you change the strings that the standard dialog buttons display, the return value is still one of the pre-defined integers. The only form of show Xxx Dialog that does not return an integer is showInputDialog , which returns an Object instead. This Object is generally a String reflecting the user's choice. Here is an example of using showInputDialog to create a dialog that lets the user choose one of three strings:. If you do not care to limit the user's choices, you can either use a form of the showInputDialog method that takes fewer arguments or specify null for the array of objects.
In the Java look and feel, substituting null for possibilities results in a dialog that has a text field and looks like this:. Because the user can type anything into the text field, you might want to check the returned value and ask the user to try again if it is invalid.
Another approach is to create a custom dialog that validates the user-entered data before it returns. See CustomDialog. If you're designing a custom dialog, you need to design your dialog's API so that you can query the dialog about what the user chose. For example, CustomDialog has a getValidatedText method that returns the text the user entered.
By default, when the user clicks a JOptionPane -created button, the dialog closes. But what if you want to check the user's answer before closing the dialog? In this case, you must implement your own property change listener so that when the user clicks a button, the dialog does not automatically close. DialogDemo contains two dialogs that implement a property change listener.
One of these dialogs is a custom modal dialog, implemented in CustomDialog , that uses JOptionPane both to get the standard icon and to get layout assistance.
Though this dialog is rather useless as written, its code is simple enough that you can use it as a template for more complex dialogs. Besides setting the property change listener, the following code also calls the JDialog 's setDefaultCloseOperation method and implements a window listener that handles the window close attempt properly.
If you do not care to be notified when the user closes the window explicitly, then ignore the bold code. Other methods you're likely to call are defined by the Dialog , Window and Component classes and include pack , setSize , and setVisible.
To find other examples that use dialogs, see the example lists for progress bars , color choosers , and file choosers. All rights reserved. Hide TOC. Using Swing Components. The code for simple dialogs can be minimal.
For example, here is an informational dialog: Here is the code that creates and shows it: JOptionPane. Alternatively, to compile and run the example yourself, consult the example index. Click the Show it! A modal dialog will appear. Until you close it, the application will be unresponsive, although it will repaint itself if necessary.
You can close the dialog either by clicking a button in the dialog or explicitly, such as by using the dialog window decorations. In the More Dialogs pane, click the bottom radio button and then the Show it! A non-modal dialog will appear. Note that the DialogDemo window remains fully functional while the non-modal dialog is up. While the non-modal dialog is showing, iconify the DialogDemo window.
The dialog will disappear from the screen until you deiconify the DialogDemo window. Show a one-button, modal dialog that gives the user some information. The arguments specify in order the parent component, message, title, message type, and icon for the dialog. See Creating and Showing Simple Dialogs for a discussion of the arguments and their effects.
Show a customized modal dialog. The arguments specify in order the parent component, message, title, option type, message type, icon, options, and initial value for the dialog. Show a modal dialog that asks the user a question.
The arguments specify in order the parent component, message, title, option type, message type, and icon for the dialog. Show a modal dialog that prompts the user for input. The single-argument version specifies just the message, with the parent component assumed to be null. The arguments for the other versions specify in order the parent component, message, title, message type, icon, options, and initial value for the dialog.
Implement a standard dialog as an internal frame. Creates a JOptionPane instance.
Java Swing – JOptionPane showMessageDialog example
The class JOptionPane is a component which provides standard methods to pop up a standard dialog box for a value or informs the user of something. Creates a instance of JOptionPane to display a message using the plain-message message type and the default options delivered by the UI. Creates an instance of JOptionPane to display a message with the specified message type and the default options. Creates an instance of JOptionPane to display a message with the specified message type and options. Creates an instance of JOptionPane to display a message with the specified message type, options, and icon. Creates an instance of JOptionPane to display a message with the specified message type, icon, and options.
SWING - JOptionPane Class