Joptionpane error message

Описание и примеры использования диалоговых окон JOptionPane библиотеки Swing для вывода сообщений, подтверждения действия, ввода данных - showMessageDialog, showConfirmDialog, showInputDialog. Настройка и локализация интерфейса диалоговых окон с использованием UIManager.

Афоризм

Не слушай внутренний свой голос; он тут снаружи не бывал.

Поддержка проекта

Если Вам сайт понравился и помог, то будем признательны за Ваш «посильный» вклад в его поддержку и развитие

 • Yandex.Деньги
  410013796724260

 • Webmoney
  R335386147728
  Z369087728698

Библиотека Swing включает богатый выбор стандартных диалоговых окон, существенно упрощающих и
ускоряющих вывод простой информации типа сообщений о работе программы, ошибках и нестандартных
ситуациях. Для вывода в графический интерфейс приложения разнообразной информации и выбора простых
данных предназначен класс JOptionPane, работа с которым связана с вызовом одного из многочисленных
статических методов, создающих и выводящих на экран модальное диалоговое окно стандартного вида.
В диалоговых окнах JOptionPane можно выводить самую разнообразную информацию и,
при необходимости, размещать в них дополнительные компоненты.

JOptionPane унаследован от базового класса JComponent библиотеки Swing, так что можно работать
с ним напрямую, т.е. создавать экземпляры класса JOptionPane и настраивать их свойства.
Использование стандартных диалоговых окон существенно упрощает разработку приложения и позволяет ускорить
процесс освоения пользователем интерфейса.

Все стандартные диалоговые окна Swing имеют собственные UI-представители, отвечающие за интерфейс
окна в используемом приложении. Это особенно важно для внешних видов окон, имитирующих известные
платформы, пользователи которых не должны ощущать значительной разницы при переходе от «родных»
приложений к Java-приложениям.

Класс JOptionPane

Интерфейс экземпляра класса JOptionPane имеет структуру, представленную на следующем рисунке.
Иконка в интерфейсе может отсутствовать.

Основные диалоговые методы JOptionPane

Наименование метода Описание
showMessageDialog Диалоговое окно вывода сообщения
showConfirmDialog Диалоговое окно подтверждения, с включением кнопок типа yes/no/cancel
showInputDialog Диалоговое окно с выбором

Конструкторы окна сообщений showMessageDialog

// Простое диалоговое окно с заголовком «Message»
public static void showMessageDialog(Component parent,
                                     Object message) 
                                            throws HeadlessException
// Диалоговое окно с заголовком и типом сообщения
public static void showMessageDialog(Component parent,
                                     Object message, 
                                     String title,
                                     int messageType) 
                                            throws HeadlessException
// Диалоговое окно с заголовком, типом сообщения и иконкой
public static void showMessageDialog(Component parent,
                                     Object message,
                                     String title,
                                     int messageType,
                                     Icon icon)
                                            throws HeadlessException

Конструкторы окна подтверждения showConfirmDialog

// Простое диалоговое окно подтверждения с кнопками Yes, No, Cancel и
// с заголовком «Select an Option»
public static void showConfirmDialog(Component parent,
                                     Object message) 
                                         throws HeadlessException
// Окно подтверждения с заголовком и кнопками, определенными 
// опцией optionType
public static void showConfirmDialog(Component parent, 
                                     Object message, 
                                     String title, 
                                     int optionType) 
                                         throws HeadlessException
// Окно подтверждения с заголовком, кнопками, определенными 
// опцией optionType, и иконкой
public static void showConfirmDialog(Component parent, 
                                     Object message,
                                     String title,
                                     int optionType,
                                     Icon icon) 
                                         throws HeadlessException

Конструкторы окна выбора showInputDialog

// Диалоговое окно с полем ввода
public static void showInputDialog(Component parent,
                                   Object message) 
                                          throws HeadlessException
// Диалоговое окно с полем ввода, инициализируемое initialSelectionValue
public static void showInputDialog(Component parent, 
                                   Object message, 
                                   Object initialSelectionValue) 
                                          throws HeadlessException
// Диалоговое окно с полем выбора из списка selectionValues
public static void showInputDialog(Component parent, 
                                   Object message,
                                   String title, 
                                   int messageType,
                                   Icon icon,  
                                   Object[] selectionValues,
                                   Object initialSelectionValue) 
                                          throws HeadlessException

parent — родительское окно.

message — отображаемый в окне текст сообщения. В большинстве случаев это строка, но может
быть использован массив строк String[], компонент Component, иконка Icon, представленная меткой
JLabel, объект Object, конвертируемый в строку методом toString().

title — заголовок окна.

messageType — тип диалогового окна :

  • INFORMATION_MESSAGE — стандартное диалоговое окно для вывода информации со значком
    соответствующего вида;
  • WARNING_MESSAGE — стандартное диалоговое окно для вывода предупреждающей информации
    со значком соответствующего вида;
  • QUESTION_MESSAGE — стандартное диалоговое окно для вывода информации. Как правило,
    не используется для информационных сообщений;
  • ERROR_MESSAGE — стандартное диалоговое окно для вывода информации об ошибке со значком
    соответствующего вида;
  • PLAIN_MESSAGE — стандартное диалоговое окно для вывода информации без значка.

optionType — опция определения кнопок управления :

  • DEFAULT_OPTION
  • YES_NO_OPTION
  • YES_NO_CANCEL_OPTION
  • OK_CANCEL_OPTION

selectionValues — список возможных значений. В диалоговом окне InputDialog список
будет представлен в компоненте JComboBox или JList. Если selectionValues = null, то в окне
будет определено поле JTextField, в которое пользователь может ввести любое значение.

initialSelectionValue — инициализируемое значение.

icon — отображаемая в диалоговом окне иконка.

Локализация кнопок JOptionPane

Кнопки управления, как правило, имеют заголовки «Yes», «No», «Cancel». Для локализации кнопок
диалогового компонента JOptionPane можно использовать UIManager
следующим образом :

UIManager.put("OptionPane.yesButtonText"   , "Да"    );
UIManager.put("OptionPane.noButtonText"    , "Нет"   );
UIManager.put("OptionPane.cancelButtonText", "Отмена");
UIManager.put("OptionPane.okButtonText"    , "Готово");

Пример использования JOptionPane

Пример JOptionPaneTest.java включает использование всех типов диалоговых
окон JOptionPane. В интерфейсе окна, представленном на следующем скриншоте, размещаются
кнопки, по нажатию на которые формируются соответствующие диалоговые окна JOptionPane.

Листинг примера JOptionPane

// Пример использования диалоговых окон JOptionPane

import javax.swing.*;
import java.awt.event.*;

public class JOptionPaneTest extends JFrame 
{
    private        JPanel  contents       = null;
    private        JButton btnMessage1    = null;
    private        JButton btnMessage2    = null;
    private        JButton btnMessage3    = null;

    private        JButton btnConfirm1    = null;
    private        JButton btnConfirm2    = null;
    private        JButton btnConfirm3    = null;

    private        JButton btnInput1      = null;
    private        JButton btnInput2      = null;
    private        JButton btnInput3      = null;

    private      ImageIcon  icon          = null;
    private final  String   TITLE_message = "Окно сообщения";  
    private final  String   TITLE_confirm = "Окно подтверждения";
    private        String[] drink         = {"Сок",
                                             "Минералка",
                                             "Лимонад"  ,
                                             "Пиво"};
    public JOptionPaneTest()
    {
        super("Пример использования JOptionPane");
        setDefaultCloseOperation(EXIT_ON_CLOSE);

        // Локализация кнопок
        UIManager.put("OptionPane.yesButtonText"   , "Да"    );
        UIManager.put("OptionPane.noButtonText"    , "Нет"   );
        UIManager.put("OptionPane.cancelButtonText", "Отмена");

        contents = new JPanel();
        // Иконка для отображения в окне сообщений
        icon = new ImageIcon("images/warning.png");

        // Кнопка формирования окна по 2-м параметрам
        btnMessage1 = new JButton("MessageDialog 2");
        // Кнопка формирования окна по 4-м параметрам
        btnMessage2 = new JButton("MessageDialog 4");
        // Кнопка формирования окна по 5-и параметрам
        btnMessage3 = new JButton("MessageDialog 5");

        // Кнопки вывода сообщений подтверждения
        btnConfirm1 = new JButton("ConfirmDialog 4+2");
        btnConfirm2 = new JButton("ConfirmDialog 5");
        btnConfirm3 = new JButton("ConfirmDialog 6");

        btnInput1 = new JButton("InputDialog 2+3");
        btnInput2 = new JButton("InputDialog 4");
        btnInput3 = new JButton("InputDialog 7");

        addMessageListeners();
        addConfirmListeners();
        addInputListeners  ();

        // Размещение кнопок в интерфейсе
        contents.add(btnMessage1);
        contents.add(btnMessage2);
        contents.add(btnMessage3);

        contents.add(btnConfirm1);
        contents.add(btnConfirm2);
        contents.add(btnConfirm3);

        contents.add(btnInput1);
        contents.add(btnInput2);
        contents.add(btnInput3);

        setContentPane(contents);
        // Вывод окна на экран
        setSize(500, 140);
        setVisible(true);
    }
}

В методах addMessageListeners(), addConfirmListeners(),
addInputListeners() определяются слушатели, обрабатывающие нажатие соответствующих
кнопок.

Окна вывода сообщений MessageDialog

Листинг процедуры создания слушателей, формирующие диалоговые окна вывода сообщений.

private void addMessageListeners()
{
    btnMessage1.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            JOptionPane.showMessageDialog(JOptionPaneTest.this, 
                 "<html><h2>Текст</h2><i>в виде разметки HTML</i>");
            }
        });
    btnMessage2.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            JOptionPane.showMessageDialog(JOptionPaneTest.this,
                    new String[] {"Сообщение в виде массива строк :",
                                  " - первая строка",
                                  " - вторая строка"},
                                  TITLE_message,
                                  JOptionPane.ERROR_MESSAGE);
            }
        });
    btnMessage3.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            // Включение в интерфейс иконки
               JOptionPane.showMessageDialog(JOptionPaneTest.this,
                    "Использование изображения в окне сообщений",
                    TITLE_message, JOptionPane.INFORMATION_MESSAGE,
                    icon);
        }
    });
}

1. Интерфейс окна вывода сообщений по нажатию на кнопку btnMessage1. Конструктор
получает 2 параметра : родитель и текст сообщения. В заголовок подставляется значение «Message».
Текст сообщения имеет HTML разметку.

2. Интерфейс окна вывода сообщений по нажатию на кнопку btnMessage2. Конструктор
получает 4 параметра : родитель, текст сообщения в виде массива строк, строку заголовка окна и
тип сообщения.

3. Интерфейс окна вывода сообщений по нажатию на кнопку btnMessage2. Конструктор
получает 5 параметров : родитель, текст сообщения, строку заголовка окна, тип сообщения и иконку.

Диалоговые окна подтверждений ConfirmDialog

Листинг процедуры создания слушателей, формирующие диалоговые окна подтверждений.

private void addConfirmListeners()
{
    btnConfirm1.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            // Окно подтверждения c 4-мя параметрами
               int result = JOptionPane.showConfirmDialog(
                                      JOptionPaneTest.this, 
                                      "Вам это нужно?",
                                      TITLE_confirm,
                                      JOptionPane.YES_NO_CANCEL_OPTION);
            // Окна подтверждения c 2-мя параметрами
            if (result == JOptionPane.YES_OPTION)
                JOptionPane.showConfirmDialog(JOptionPaneTest.this,
                                              "Вы не отказываетесь?");
            else if (result == JOptionPane.NO_OPTION)
                JOptionPane.showConfirmDialog(JOptionPaneTest.this, 
                                              "Вы отказались?");
        }
    });
    btnConfirm2.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            JOptionPane.showConfirmDialog(JOptionPaneTest.this,
                                          "Вы не отказываетесь?",
                                          TITLE_confirm,
                                          JOptionPane.YES_NO_OPTION,
                                          JOptionPane.WARNING_MESSAGE);
    }});
    btnConfirm3.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            JOptionPane.showConfirmDialog(JOptionPaneTest.this,
                                         "Вам нравится значок?", 
                                          TITLE_confirm,
                                          JOptionPane.YES_NO_OPTION, 
                                          JOptionPane.ERROR_MESSAGE,
                                          icon);
    }});
}

1. Интерфейс окна подтверждения по нажатию на кнопку btnConfirm1. Конструктор
получает 4 параметра : родитель, текст сообщения, строка заголовка и опция кнопок управления

В зависимости от нажатой кнопки открываются следующее окно подтверждение (одно из окон на
следующем скриншот), конструктор которого получает 2 параметра. Текст заголовка имеет значение по
умолчанию «Select an Option».

2. Интерфейс окна подтверждения по нажатию на кнопку btnConfirm2. Конструктор
получает 5 параметров : родитель, текст сообщения, строка заголовка, опция кнопок управления и
тип сообщения.

3. Интерфейс окна подтверждения по нажатию на кнопку btnConfirm3. Конструктор
получает 6 параметров : родитель, текст сообщения, строка заголовка, опция кнопок управления,
тип сообщения и иконка.

Диалоговые окна выбора данных InputDialog

Листинг процедуры создания слушателей, формирующие диалоговые окна выбора

private void addInputListeners()
{
    btnInput1.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            // Диалоговое окно ввода данных : родитель, HTML сообщение
            String result = JOptionPane.showInputDialog(
                                          JOptionPaneTest.this, 
                                          "<html><h2>Добро пожаловать");
            JOptionPane.showInputDialog(JOptionPaneTest.this, 
                                       "Вы ответили", result);
        }
    });
    btnInput2.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            // Диалоговое окно ввода данных : родитель, сообщение в виде
            // массива строк, тип диалогового окна (иконки)
            JOptionPane.showInputDialog(JOptionPaneTest.this, 
                              new String[] {"Неверно введен пароль!", 
                                            "Повторите пароль :"}, 
                                            "Авторизация", 
                                            JOptionPane.WARNING_MESSAGE);
        }
    });
    btnInput3.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            // Диалоговое окно ввода данных
            Object result = JOptionPane.showInputDialog(
                                        JOptionPaneTest.this,
                                        "Выберите любимый напиток :",
                                        "Выбор напитка", 
                                        JOptionPane.QUESTION_MESSAGE, 
                                        icon, drink, drink[0]);
            // Диалоговое окно вывода сообщения
            JOptionPane.showMessageDialog(JOptionPaneTest.this, result);
        }
    });
}

1. Интерфейс окна ввода данных по нажатию на кнопку btnInput1 представлен на скриншоте
слева. Конструктор получает 2 параметра : родитель и текст сообщения с разметкой HTML. После ввода
значения и нажатия на одну из клавиш открывается окно, представленное на скриншоте справа.

2. На следующем скриншоте представлен интерфейс окна ввода данных, создаваемое конструктором,
которому в качестве текста передается родитель, текстовое сообщение в виде массива строк, строка
заголовка и тип диалогового окна (иконки).

3. Интерфейс окна ввода данных по нажатию на кнопку btnInput3 представлен на следующем
скриншоте слева. Конструктор получает все возможные параметры : родитель, текстовое сообщение,
строка заголовка, тип диалогового окна, иконка, массив строк и выделенное значение по умолчанию.
В диалоговом окне возможные значения представлены в компоненте выпадающего списка. После выбора
значения и нажатия на одну из клавиш открывается окно вывода сообщения, представленное на
скриншоте справа.

Скачать примеры

Исходные коды примеров, рассмотренных на странице, можно
скачать здесь (2.25 Кб).

Окно сообщения в Java

Окно сообщения в Java — это всплывающее окно, которое появляется на экране для отображения какого-либо сообщения и ожидает подтверждения от пользователя. Термин JOptionPane — это предоставляемый Java класс, который предоставляет пользователям привилегию показывать диалоговые окна сообщений. Этот класс наследуется от класса JComponent и присутствует в пакете javax.swing.

Ниже приведен блок кода, показывающий, как работает окно сообщения в Java.

import javax.swing.*;

public class DialogueBoxPopUp {
    public static void main(String[] args) {
         JOptionPane.showMessageDialog(null,
                "Hi, In the message box",
                "PopUp Dialog",
                JOptionPane.INFORMATION_MESSAGE);
    }
}

В приведенном выше простом блоке кода класс JOptionPane предлагает пользователям окна сообщений и ожидает ответа. В классе есть несколько статических методов, которые служат для пользователя служебными программами. Метод showConfirmDialog задает вопрос и подтверждает варианты да, нет и отмена. Метод showInputDialog предлагает пользователю ввести некоторые данные. Функция showMessageDialog сообщает пользователю о некоторых событиях.

Вышеупомянутый блок использует перегруженную версию метода showMessageDialog и принимает четыре параметра. Во-первых, аргумент parentComponent проверяет фрейм, в котором может отображаться компонент. Если значение является нулевым значением, то используется фрейм по умолчанию. В предыдущей программе передается нулевой фрейм, поэтому код использует фрейм по умолчанию.

Далее идет аргумент message, который выводит на экран сообщение Object. Аргумент title принимает строку заголовка для всплывающего окна. Сообщение в приведенном выше блоке имеет заголовок Всплывающее диалоговое окно, которое появляется в верхней части диалогового окна.

messageType — это тип сообщения, которое выполняет значения ERROR_MESSAGE, INFORMATION_MESSAGE, WARNING_MESSAGE, QUESTION_MESSAGE или PLAIN_MESSAGE. Эти значения представлены как статические и конечные значения как тип сообщения в классе JOptionPane. Код использует INFORMATION_MESSAGE в качестве типа сообщения.

Проверьте результат предыдущей программы здесь:

Всплывающее диалоговое окно сообщения

Если тип сообщения изменится на JOptionPane.ERROR_MESSAGE, появится диалоговое окно сообщения об ошибке, как на изображении ниже.

Всплывающее диалоговое окно с ошибкой

Если тип сообщения изменится на JOptionPane.WARNING_MESSAGE, диалоговое окно с предупреждением будет выглядеть, как показано ниже.

Всплывающее диалоговое окно с предупреждением

Есть еще несколько типов сообщений, которые можно использовать при необходимости.

Improve Article

Save Article

  • Read
  • Discuss
  • Improve Article

    Save Article

    Message dialogs provide information to the user. Message dialogs are created with the JOptionPane.showMessageDialog() method.

    We call the static showMessageDialog() method of the JOptionPane class to create a message dialog. We provide the dialog’s parent, message text, title, and message type. The message type is one of the following constants : 

    1. ERROR_MESSAGE
    2. WARNING_MESSAGE
    3. QUESTION_MESSAGE
    4. INFORMATION_MESSAGE

    Methods Used : 

    1. setLayout(…): method helps us to set the layout of the container, often a JPanel, to say FlowLayout, BorderLayout, GridLayout, null layout, or whatever layout we want to add on container.
    2. setBounds(…): method is used to set the location and size of components like JButton, and is only useful if null layout is used in JFrame.
    3. setVisible(…): method is used to set the Visibility status of JFrame. 
      1. setVisible(true) will set JFrame visible to user.
      2. setVisible(false) will set JFrame not visible to user.
    4. getSource(): An event object contains a reference to the component that generated the event. To extract that reference from the event object we use getSource() Method.
    5. add(): It is used to add components like JButton etc, to the container of JFrame.

    Below is the implementation of above discussed method to show Message Dialogs :

    Java

    import java.awt.*;

    import java.awt.event.*;

    import javax.swing.*;

    class Demo extends JFrame implements ActionListener

    {

        JButton b1;

        Demo()

        {

            this.setLayout(null);

            b1 = new JButton("Button 1");

            b1.setBounds(130, 05, 100, 50);

            this.add(b1);

            b1.addActionListener(this);

        }

        public void actionPerformed(ActionEvent evt)

        {

            if (evt.getSource() == b1)

            {

                JOptionPane.showMessageDialog(this, "Enter a valid Number",

                                       "ERROR", JOptionPane.ERROR_MESSAGE);

            }

        }

    }

    class MessageDialogs1 {

        public static void main(String args[])

        {

            Demo f = new Demo();

            f.setBounds(200, 200, 400, 300);

            f.setResizable(false);

            f.setVisible(true);

        }

    }

    Output : 

    Java

    import java.awt.*;

    import java.awt.event.*;

    import javax.swing.*;

    class Demo extends JFrame implements ActionListener

    {

        JButton b1;

        Demo()

        {

            this.setLayout(null);

            b1 = new JButton("Button 2");

            b1.setBounds(130, 05, 100, 50);

            this.add(b1);

            b1.addActionListener(this);

        }

        public void actionPerformed(ActionEvent evt)

        {

            if (evt.getSource() == b1) {

                JOptionPane.showMessageDialog(this, "Enter a valid String",

                                   "WARNING", JOptionPane.WARNING_MESSAGE);

            }

        }

    }

    class MessageDialogs2 {

        public static void main(String args[])

        {

            Demo f = new Demo();

            f.setBounds(200, 200, 400, 300);

            f.setResizable(false);

            f.setVisible(true);

        }

    }

    Output : 
     

    Java

    import java.awt.*;

    import java.awt.event.*;

    import javax.swing.*;

    class Demo extends JFrame implements ActionListener

    {

        JButton b1;

        Demo()

        {

            this.setLayout(null);

            b1 = new JButton("Button 3");

            b1.setBounds(130, 05, 100, 50);

            this.add(b1);

            b1.addActionListener(this);

        }

        public void actionPerformed(ActionEvent evt)

        {

            if (evt.getSource() == b1)

            {

                JOptionPane.showMessageDialog(this, "Do you want to quit",

                                 "Question", JOptionPane.QUESTION_MESSAGE);

            }

        }

    }

    class MessageDialogs3 {

        public static void main(String args[])

        {

            Demo f = new Demo();

            f.setBounds(200, 200, 400, 300);

            f.setResizable(false);

            f.setVisible(true);

        }

    }

    Output : 

    Java

    import java.awt.*;

    import java.awt.event.*;

    import javax.swing.*;

    class Demo extends JFrame implements ActionListener

    {

        JButton b1;

        Demo()

        {

            this.setLayout(null);

            b1 = new JButton("Button 4");

            b1.setBounds(130, 05, 100, 50);

            this.add(b1);

            b1.addActionListener(this);

        }

        public void actionPerformed(ActionEvent evt)

        {

            if (evt.getSource() == b1)

            {

                JOptionPane.showMessageDialog(this, "You Pressed Button FOUR",

                                              "INFORMATION",

                                              JOptionPane.INFORMATION_MESSAGE);

            }

        }

    }

    class MessageDialogs4 {

        public static void main(String args[])

        {

            Demo f = new Demo();

            f.setBounds(200, 200, 400, 300);

            f.setResizable(false);

            f.setVisible(true);

        }

    }

    Output : 

    Joptionpane in java

    Introduction to JOptionPane in Java

    The JOptionPane is a class that is used to provide standard dialog boxes. It is a part of Java Swing which is used for creating window-based applications. JOptionPane is a component from Java Swing and it deals with dialog boxes especially. The dialog boxes can be of any type such as confirm dialog box, message dialog box or input dialog box. These dialog boxes can be used to display information to the user or to get input from the user.

    Syntax:

    public class JOptionPane extends JComponent implements Accessible

    JComponent is a base class for Swing Components and Accessible is the main interface for the accessibility package. They both provide a standard mechanism that is required to support swing architecture.

    JOptionPane Constructors

    Below are the constructors as follows:

    • JOptionPane(): It creates an instance of JOptionPane with a default text message.
    • JOptionPane(Object message, int messageType): It creates an object of JOptionPane which will display a message with specified message type and default options delivered by User Interface.
    • JOptionPane(Object message): It creates an object of JOptionPane which will display a message with plain-message message type and default options delivered by User Interface.
    • JOptionPane(Object message, int messageType, int option type): It creates an instance of JOptionPane which will display a message with specified message type and options as well.
    • JOptionPane(Object message, int messageType, int optionType, Icon icon): Display a message with specified message type, option type and icon as well.

    Methods of JOptionPane in Java

    While there is a large number of methods in the JOptionPane class, they all fit in the format of showXxxDialog as below:

    • showInputDialog: Prompt user for some input.
    • showMessageDialog: Shows the dialog box with a message to the user.
    • show confirm dialog: Asks user a confirming question, like yes/no/cancel.
    • showOptionDialog: The combination of the above three.

    All of these methods also come in showInternalXXX flavor, which will use an internal frame to hold the dialog box. Below are the commonly used methods in JOptionPane class:

     

    Sr.No.

    Methods & Description

    1. JDialog createDialog(String title): This method is used to create a new instance of parentless JDialog with the provided title in the argument. JDialog is the main class for creating a dialog window.
    2. JDialog createDialog(Component parentComponent, String title): This method is used to create a new instance of JDialog with the provided title in argument as well this method has the provision of providing parent component for dialog box which we are creating. JDialog is centered on the provided parent component in the frame of parentComponent.
    3. static void showMessageDialog(Component parentComponent, Object message): This method pops up an information-message dialog box with the title as “Message”. By default, the title is “Message”. It has also parent component which we can pass. The dialog box will be centered on this parent component. See below example 1.
    4. static void showMessageDialog(Component parentComponent, Object message, String title, int messageType): This method will show information-message with additional customizable parameters. It allows us to specify the title of the dialog box and choose the type of message shown. The option type of message will automatically choose the displaying icon on the dialog box. See below example 2.
    5. static String shows InputDialog(Component parent component, Object message): This method will pop up a question-message dialog box with the message specified. Here also, we have provision to pass parent component. This method will return then the input provided by the user. We can use the same input further for business logic. See below example 3.
    6. static int showConfirmDialog(Component parentComponent, Object message): This method will pop up a confirmation message dialog box with three options as Yes, No and Cancel. Each option representing an integer value as 0, 1 and 2 respectively.  We have two arguments over here, one is parent component and second is a message to be displayed. The method will then return the appropriate integer value according to the option chosen by the user.  See below example 4.
     

    7

    showOptionDialog(Component parentComponent, Object message, String title, int optionType, int messageType, Icon icon, Object[] options, Object initialValue): This method is like a combination of above all methods where we can create our customized dialog box as per user requirement. Here developers have the flexibility to pass arguments such as parent component, message, title of dialog box, option type, message type, icon. The initial value represents the default selection of options on the dialog box.

    Almost all the methods from the JOptionPane class are static methods. Mostly we will access them directly without creating an instance of JOptionPane.

    Examples of JOptionpane in Java

    Below are the examples follow:

    1. showMessageDialog()

    Code:

    simple dialog box with only message:

    import javax.swing.JOptionPane;
    public class Main extends JOptionPane
    {
    public static void main (String[] args)
    {
    JOptionPane.showMessageDialog( null, "Hello World..!" );
    }
    }

    Here, the parent component is passed as null which means that there will be no parent for the dialog box and String argument is text message which will be shown on dialog box as information to the user.

    Output:

    output1 joption

    2. showMessageDialog()

    Same as example 1 but with additional title and message type as the argument:

    Code:

    import javax.swing.JOptionPane;
    public class JOptionPaneExample
    {
    public static void main( String[] args )
    {
    JOptionPane.showMessageDialog( null, "Something Went Wrong.." , "Error as Title",
    JOptionPane.ERROR_MESSAGE );
    }
    }

    Output:

    output2 joption

    3. showInputDialog()

    Take input from the user and display it on a dialog box.

    Code:

    import javax.swing.JOptionPane;
    public class JOptionPaneExample extends JOptionPane
    {
    public static void main( String[] args )
    {
    String name = JOptionPane.showInputDialog( "Provide User Name:" );
    JOptionPane.showMessageDialog(null, name);
    }
    }

    Output:

    output3 JOptionpane in Java

    4. showConfirmDialog()

    Code:

    package swing.demo.dialogBox;
    import javax.swing.JOptionPane;
    public class JOptionPaneExample
    {
    public static void main( String[] args )
    {
    int input = JOptionPane.showConfirmDialog(null, "Are you Sure?");
    // 0=yes, 1=no, 2=cancel
    System.out.println(input);
    }
    }

    Output:

    output 4 JOptionpane in Java

    Conclusion

    In windows-based applications, Java Swing makes it very easy to develop them and it is a very powerful API. JOptionPane being a part of it simplifies creating dialog boxes in an easy manner. It provides standard dialog boxes such as the input dialog box, confirms dialog box and message dialog box. We can create our own custom dialog boxes as well. Since JOptionPane provides standard dialog boxes, it is very useful.

    Recommended Articles

    This is a guide to JOptionPane in Java. Here we discuss the constructor, methods, and examples of JOptionPane in java. You can also go through our other related articles to learn more –

    1. JTextField in Java
    2. JScrollPane in Java
    3. JDialog in Java
    4. JComboBox in Java

    JOptionPane enables you to create and customize various kinds of dialogs. With JOptionPane the dialogs can have customized dialog layout, icons, dialog title, dialog text and button text. In addition, JOptionPane allows you to customize the displaying component and its position where on the screen dialog display.

    To create simple modal dialogs, you use static methods of JOptionPane showAbcDialog() for instanceshowMessageDialog(). If a dialog has to be in an internal frame you can use showInteralAbcDialog() for example showInternalMessageDialog(). In order to create modeless dialog you need to create new instance of JOptionPane and add it to a JDialog instance. And then you call method setVisible(true)  of the JDialog’s instance to make it visible on screen.

    JOptionPane provides you with two useful static methods such as showMessageDialog() and showOptionDialog(). The showMessageDialog() method shows a very simple dialog with one button while showOptionDialog() method displays a highly customized dialogs with different buttons texts. Besides these methods, JOptionPane provides showConfirmDialog() method to ask users to confirm an action and showInputDialog() to get simple input from the users.

    Example of Using Method showMessageDialog of JOptionPane

    In this example, we use showMessageDialog() method of JOptionPane to show various simple dialog with one button and different icons which represent different message types such as information, warning, error and question message. When you click on each radio button, it will display corresponding message type.

    JOptionPane
    Information Message
    Warning Message
    Error Message
    Question Message

    package joptionpanedemo1; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Main { public static void main(String[] args) { final JFrame frame = new JFrame("JOptionPane Demo"); // implement ItemListener interface class MyItemListener implements ItemListener { public void itemStateChanged(ItemEvent ev) { boolean selected = (ev.getStateChange() == ItemEvent.SELECTED); AbstractButton button = (AbstractButton) ev.getItemSelectable(); String command = button.getActionCommand(); if (selected) { int messageType = -1; String message = ""; if (command.equals("INFORMATION")) { messageType = JOptionPane.INFORMATION_MESSAGE; message = "Information Message"; } else if (command.equals("WARNING")) { messageType = JOptionPane.WARNING_MESSAGE; message = "Warning Message"; } else if (command.equals("ERROR")) { messageType = JOptionPane.ERROR_MESSAGE; message = "Error Message"; } else if (command.equals("QUESTION")) { messageType = JOptionPane.QUESTION_MESSAGE; message = "Question Message"; } // show message JOptionPane.showMessageDialog(frame, message, "Message Dialog", messageType); } } } JRadioButton r1 = new JRadioButton("Information Message"); r1.setActionCommand("INFORMATION"); JRadioButton r2 = new JRadioButton("Warning Message"); r2.setActionCommand("WARNING"); JRadioButton r3 = new JRadioButton("Error Message"); r3.setActionCommand("ERROR"); JRadioButton r4 = new JRadioButton("Question Message"); r4.setActionCommand("QUESTION"); // add event handler MyItemListener myItemListener = new MyItemListener(); r1.addItemListener(myItemListener); r2.addItemListener(myItemListener); r3.addItemListener(myItemListener); r4.addItemListener(myItemListener); // add radio buttons to a ButtonGroup final ButtonGroup group = new ButtonGroup(); group.add(r1); group.add(r2); group.add(r3); group.add(r4); // Frame setting frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(300, 200); Container cont = frame.getContentPane(); cont.setLayout(new GridLayout(0, 1)); cont.add(new JLabel("Please choose the message type:")); cont.add(r1); cont.add(r2); cont.add(r3); cont.add(r4); frame.setVisible(true); } }

    Code language: JavaScript (javascript)

    Example of Using Method showOptionDialog to Create Dialogs

    In this example, we use showOptionDialog method to show question dialog with as yes/no and yes/no/cancel options.

    JOptionPane
    JOptionPane showOptionDialog
    JOptionPane showOptionDialog

    package joptionpanedemo2; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Main { public static void main(String[] args) { final JFrame frame = new JFrame("JOptionPane Demo"); // implement ItemListener interface class MyItemListener implements ItemListener { public void itemStateChanged(ItemEvent ev) { boolean selected = (ev.getStateChange() == ItemEvent.SELECTED); AbstractButton button = (AbstractButton) ev.getItemSelectable(); String command = button.getActionCommand(); if (selected) { int optionType = -1; if (command.equals("YES_NO_OPTION")) { optionType = JOptionPane.YES_NO_OPTION; } else if (command.equals("YES_NO_CANCEL_OPTION")) { optionType = JOptionPane.YES_NO_CANCEL_OPTION; } JOptionPane.showOptionDialog(frame, "Are you sure to confirm the action you've made?", "JOptionPane Demo", optionType, JOptionPane.INFORMATION_MESSAGE, // icon null, null, null); } } } JRadioButton r1 = new JRadioButton("Yes / No Options"); r1.setActionCommand("YES_NO_OPTION"); JRadioButton r2 = new JRadioButton("Yes / No / Cancel Options"); r2.setActionCommand("YES_NO_CANCEL_OPTION"); // add event handlers MyItemListener myItemListener = new MyItemListener(); r1.addItemListener(myItemListener); r2.addItemListener(myItemListener); // add radio buttons to a ButtonGroup final ButtonGroup group = new ButtonGroup(); group.add(r1); group.add(r2); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(300, 200); Container cont = frame.getContentPane(); cont.setLayout(new GridLayout(0, 1)); cont.add(new JLabel("Please choose the options type:")); cont.add(r1); cont.add(r2); frame.setVisible(true); } }

    Code language: JavaScript (javascript)

    Понравилась статья? Поделить с друзьями:

    Читайте также:

  • Joomshopping как изменить шаблон
  • Joomla шаблон error php
  • Joomla после обновления http error 500
  • Joomla пишет error
  • Joomla ошибка smtp не удалось авторизоваться на сервере

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии