by Dinesh Thakur

JOptionPane is a subclass of JComponent which includes static methods for creating and customizing modal dialog boxes using a simple code. Previously, you have seen that creating a dialog box using JDialog makes the code cumbersome. So JOptionPane is used instead of JDialog to minimize the complexity of the code. JOptionPane displays the dialog boxes with one of the four standard icons (question, information, warning, and error) or the custom icons specified by the user.

Some of the constructors defined by the JOptionPane class are as follows.

JOptionPane ()

JOptionPane(Object message)

JOptionPane(Object message, int messageType)

JOptionPane(Object message, int messageType, int optionType)

JOPtionPane (Object message, int messageType, int optionType, Icon icon)

JOPtionPane (Object message, int messageType, int optionType, Icon icon, Object[] options)

JOPtionPane (Object message, int messageType, int optionType, Icon icon, Object[] options, Object initialValue)

where,

message is the message to be displayed in the dialog box

messageType specifies the type of the message to be displayed. It has various values which are represented as: ERROR_MESSAGE, INFORMATION_MESSAGE,WARNING_MESSAGE, QUESTION_MESSAGE or PLAIN_MESSAGE

optionType is used to specify the options. It can have various values which are represented as: DEFAULT_OPTION, YES_NO_OPTION, YES_NO_CANCEL_OPTION or OK_CANCEL_OPTION icon specifies the icon to be displayed

options is an array of options to be displayed in the dialog box with none of them selected

initialValue specifies the default option selected from the list provided in options

JOptionPane class is used to display four types of dialog boxes namely, 

MessageDialog - dialog box that displays a message making it possible to add icons to alert the user.
ConfirmDialog - dialog box that besides sending a message, enables the user to answer a question.
InputDialog - dialog box that besides sending a message, allows entry of a text.
OptionDialog - dialog box that covers the three previous types.

import javax.swing.JOptionPane;

public class JavaExampleOptionPaneSalaryDialog
  {
    public static void main(String[] aa)
     {
       String StrngWg, StrngDpndnt;
       double Salary,WklyPay;
       int Dpndnts;
       final double HOURS_IN_WEEK = 37.5;
       StrngWg = JOptionPane.showInputDialog(null,"Enter Worker's Hourly Wage", "First Salary Dialog",JOptionPane.INFORMATION_MESSAGE);
       WklyPay = Double.parseDouble(StrngWg) *HOURS_IN_WEEK;StrngDpndnt = JOptionPane.showInputDialog(null,"How many Dependents?", "Second Salary Dialog
",JOptionPane.QUESTION_MESSAGE);
       Dpndnts = Integer.parseInt(StrngDpndnt);
       JOptionPane.showMessageDialog(null,"Weekly Pay is $" +WklyPay+ "\nDeductions will be made for :" +Dpndnts+ "Dependents");
     }
  }

JoptionPane