Рубрики
Без рубрики

Java Swing – JOptionPane показывает пример подтверждениядиалога

– Javax Swing – JOptionPane показывает пример подтверждениядиалога

Автор оригинала: Marilena.

Это обзор метода showConfirmDialog() класса JOptionPane . Этот метод является быстрым и простым способом получить ввод данных пользователя, задавая подтверждающий вопрос, например да/нет/отмена. showConfirmDialog() может быть вызван с использованием следующих комбинаций параметров:

Component, Object
Component, Object, String, int
Component, Object, String, int, int
Component, Object, String, int, int, Icon
  1. Компонент – Первый параметр – это компонент, который определяет кадр, в котором отображается диалоговое окно; если значение равно нулю, или если ParentComponent не имеет фрейма, используется фрейм по умолчанию.
  2. Объект – Вторым параметром может быть любой объект. (В некоторых более старых версиях Java вы можете получить ошибку компилятора при непосредственном использовании примитивных типов)
  3. Строка – Третий параметр – это строка, помещенная в качестве заголовка окна confirmDialog.
  4. int – Значение int, следующее за строкой, является типом параметра . Другой Типы опций для Joptionпан , являются:

    • ПАРАМЕТР ПО УМОЛЧАНИЮ
    • ДА_НО_ОПЦИЯ
    • ДА_НО_САНКЦИЯ_ОПЦИЯ
    • OK_CANCEL_ОПЦИЯ
  5. int – Следующий int – это Тип сообщения . Различные Типы сообщений для JOptionPane , являются:

    • СООБЩЕНИЕ ОБ ОШИБКЕ
    • INFORMATION_MESSAGE ИНФОРМАЦИЯ
    • WARNING_MESSAGE ПРЕДУПРЕЖДЕНИЕ
    • ВОПРОС_СООБЩЕНИЕ
    • ПРОСТОЕ СООБЩЕНИЕ
  6. Икона – Последним параметром является Значок , который отображается внутри диалогового окна и переопределяет значение по умолчанию Тип сообщения значок.

1. Компонент и объект

Самый простой способ получить пользовательский ввод. showConfirmDialog() вызовет диалоговое окно с параметрами “Да”, “Нет” и “Отмена” и заголовком “Выберите опцию”:

package com.mkyong.confirmDialog;

import javax.swing.JOptionPane;

public class ConfirmDialog1 {

    public static void main(String[] args) {

        int input = JOptionPane.showConfirmDialog(null, "Do you like bacon?");
        // 0=yes, 1=no, 2=cancel
        System.out.println(input);

    }
}

Выход:

2. Компонент, объект, Строка и int

Добавление дополнительной информации в диалоговое окно подтверждения. В этом примере мы выбираем заголовок диалогового окна, а также в тип опции . Параметр DEFAULT_OPTION имеет только кнопку “ОК”. Эта форма диалога подтверждения эквивалентна простому showMessageDialog() , предоставляя нам возможность получать вводимые пользователем данные.

package com.mkyong.confirmDialog;

import javax.swing.JOptionPane;

public class ConfirmDialog2a {

    public static void main(String[] args) {

        int input = JOptionPane.showConfirmDialog(null, 
                "Click ok if you are ok", "Be ok!", JOptionPane.DEFAULT_OPTION);
        // 0=ok
        System.out.println(input);

    }
}

Выход:

Еще один простой пример использования параметра YES_NO_CANCEL_OPTION:

package com.mkyong.confirmDialog;

import javax.swing.JOptionPane;

public class ConfirmDialog2b {

    public static void main(String[] args) {

        int input = JOptionPane.showConfirmDialog(null, 
                "Do you want to proceed?", "Select an Option...",JOptionPane.YES_NO_CANCEL_OPTION);

	// 0=yes, 1=no, 2=cancel
	System.out.println(input);

    }
}

Выход:

3. Компонент, объект, Строка, int и int

Введите диалоговое окно подтверждения со значком ошибки:

package com.mkyong.confirmDialog;

import javax.swing.JOptionPane;

public class ConfirmDialog3 {

    public static void main(String[] args) {

        int input = JOptionPane.showConfirmDialog(null, "Do you want to proceed?", "Select an Option...",
				JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.ERROR_MESSAGE);
		
	// 0=yes, 1=no, 2=cancel
	System.out.println(input);

    }
}

Выход:

4. Компонент, объект, Строка, int, int и значок

Сделайте свой диалог подтверждения “красивее”, например, с помощью значка , извлеченного из каталога:

package com.mkyong.confirmDialog;

import javax.swing.ImageIcon;
import javax.swing.JOptionPane;

public class ConfirmDialog4a {

    public static void main(String[] args) {

        ImageIcon icon = new ImageIcon("src/images/turtle64.png");
	int input = JOptionPane.showConfirmDialog(null, "Do you like turtles?", "Be honest...",
			JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, icon);

        // 0=yes, 1=no, 2=cancel
	System.out.println(input);

    }
}

Выход:

Пример с Компонент установлен в рамку :

package com.mkyong.confirmDialog;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import java.awt.Color;

public class ConfirmDialogInFrame extends JFrame{

    public ConfirmDialogInFrame() {
        getContentPane().setBackground(Color.DARK_GRAY);
        setTitle("Confirm Dialog in Frame");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
        setResizable(false);
        setSize(400, 300);
        getContentPane().setLayout(null);
    }

    public static void main(String[] args){
        ImageIcon icon = new ImageIcon("src/images/turtle64.png");
        int input = JOptionPane.showConfirmDialog(new ConfirmDialogInFrame(), 
                "I appear as part of the frame!!", "Customized Dialog", 
                JOptionPane.OK_CANCEL_OPTION, JOptionPane.INFORMATION_MESSAGE, icon);

        // 0=ok, 2=cancel
        System.out.println(input);
    }
}

Выход:

5. Более продвинутый пример

Для этого примера мы передаем JPanel в качестве параметра объекта. Панель настроена и к ней добавлена Метка . Мы также манипулируем размером Joptionpane с помощью вызова UIManager .

package com.mkyong.messageDialog;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;

import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.SwingConstants;
import javax.swing.UIManager;

public class ConfirmDialogPanel {

	public static void main(String[] args) {

		ImageIcon icon = new ImageIcon("src/images/lock64.png");

		JPanel panel = new JPanel();
		panel.setBackground(new Color(102, 205, 170));
		panel.setSize(new Dimension(200, 64));
		panel.setLayout(null);

		JLabel label1 = new JLabel("This file requires administrator rights.");
		label1.setVerticalAlignment(SwingConstants.BOTTOM);
		label1.setBounds(0, 0, 200, 32);
		label1.setFont(new Font("Arial", Font.BOLD, 10));
		label1.setHorizontalAlignment(SwingConstants.CENTER);
		panel.add(label1);

		JLabel label2 = new JLabel("Are you sure you want to continue?");
		label2.setVerticalAlignment(SwingConstants.TOP);
		label2.setHorizontalAlignment(SwingConstants.CENTER);
		label2.setFont(new Font("Arial", Font.BOLD, 10));
		label2.setBounds(0, 32, 200, 32);
		panel.add(label2);

		UIManager.put("OptionPane.minimumSize", new Dimension(300, 120));
		int input = JOptionPane.showConfirmDialog(null, panel, "Admin Rights Confirmation",
				JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE, icon);

		// 0=yes, 1=no, 2=cancel
		System.out.println(input);

	}

}

Выход:

Рекомендации

  1. Как создавать диалоги
  2. Панель JOption класса – API Java 8
  3. Постоянные Значения Полей

Оригинал: “https://mkyong.com/swing/java-swing-how-to-make-a-confirmation-dialog/”