Java Swing - пример JOptionPane showMessageDialog

Java Swing - пример JOptionPane showMessageDialog

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

Component, Object
Component, Object, String, int
Component, Object, String, int, Icon
  1. Компонент - первый параметр - это компонент, который определяет фрейм, в котором отображается диалог; если null, или еслиparentComponent не имеет фрейма, используется фрейм по умолчанию.

  2. Объект - вторым параметром могут быть любые объекты. (In some older versions of Java you might get a compiler error when using primitive types directly).

  3. String - Третий параметр - это строка, помещенная в заголовок диалогового окна сообщения.

  4. int - int, следующий за строкой, - этоMessageType. РазличныеMessageTypes дляJOptionPane:

    • СООБЩЕНИЕ ОБ ОШИБКЕ

    • INFORMATION_MESSAGE

    • ПРЕДУПРЕЖДЕНИЕ

    • QUESTION_MESSAGE

    • PLAIN_MESSAGE

  5. Значок - последний параметр - этоIcon, который отображается внутри диалогового окна и заменяет значок по умолчаниюMessageType.

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

Самый простой способ использовать диалог сообщения. Пример сComponent, установленным в ноль, иString в качестве второго аргумента:

SimpleDialog1.java

package com.techfou.messageDialog;

import javax.swing.JOptionPane;

public class SimpleDialog1 {

    public static void main(String[] args){
        JOptionPane.showMessageDialog(null, "Simple Information Message");
    }

}

Выход:

swing-dialog-1a

2. Компонент, объект, строка и интервал

Добавление дополнительной информации в диалоговое окно сообщения. Пример сComponent, установленным в ноль, иdouble в качестве второго параметра:

SimpleDialog2a.java

package com.techfou.messageDialog;

import javax.swing.JOptionPane;

public class SimpleDialog2a {

    public static void main(String[] args){
        JOptionPane.showMessageDialog(null, 8.9, "This is not an integer.", JOptionPane.PLAIN_MESSAGE);
    }

}

Выход:

swing-dialog-1b

Пример сообщения об ошибке (дляComponent установлено значение null,String Object):

SimpleDialog2b.java

package com.example.messageDialog;

import javax.swing.JOptionPane;

public class SimpleDialog2b {

    public static void main(String[] args){
        JOptionPane.showMessageDialog(null, "Uh-oh!", "Error", JOptionPane.ERROR_MESSAGE);
    }

}

Выход:

swing-dialog-1c

3. Компонент, объект, строка, интервал и значок

Сделайте диалог вашего сообщения «красивее». Пример сIcon, полученным из каталога:

SimpleDialog3a.java

package messageDialog;

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

public class SimpleDialog3a {

    public static void main(String[] args){
        ImageIcon icon = new ImageIcon("src/images/turtle64.png");
        JOptionPane.showMessageDialog(null, "I like turtles.",
                "Customized Dialog", JOptionPane.INFORMATION_MESSAGE, icon);
    }

}

Выход:

swing-dialog-1d

Пример сComponent, установленным наframe:

MessageDialogInFrame.java

package com.example.messageDialog;

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

public class MessageDialogInFrame extends JFrame{

    public MessageDialogInFrame() {
        getContentPane().setBackground(Color.DARK_GRAY);
        setTitle("Message 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");
        JOptionPane.showMessageDialog(new MessageDialogInFrame(),
                "I appear as part of the frame!!", "Customized Dialog",
                JOptionPane.INFORMATION_MESSAGE, icon);
    }

}

Выход:

swing-dialog-1e

4. Более сложный пример

В этом примере мы передаемJPanel в качестве параметра Object. JPanel настраивается, и к нему добавляетсяJLabel. Мы также манипулируем размеромOptionPane с помощью вызоваUIManager.

MessageDialogPanel.java

package com.example.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 MessageDialogPanel {

    public static void main(String[] args){
        ImageIcon icon = new ImageIcon("src/images/turtle64.png");

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

        JLabel label = new JLabel("Turtles are awesome!!! :D");
        label.setBounds(0, 0, 200, 64);
        label.setFont(new Font("Arial", Font.BOLD, 11));
        label.setHorizontalAlignment(SwingConstants.CENTER);
        panel.add(label);

        UIManager.put("OptionPane.minimumSize",new Dimension(300, 120));
        JOptionPane.showMessageDialog(null, panel, "Customized Message Dialog", JOptionPane.PLAIN_MESSAGE, icon);
    }
}

Выход:

swing-dialog-1f