Java Swing - пример JOptionPane showMessageDialog
Это обзор методаshowMessageDialog() классаJOptionPane. Этот метод - быстрый и простой способ рассказать пользователю о том, что произошло. showMessageDialog() можно вызвать с помощью следующих комбинаций параметров:
Component, Object Component, Object, String, int Component, Object, String, int, Icon
-
Компонент - первый параметр - это компонент, который определяет фрейм, в котором отображается диалог; если null, или если
parentComponentне имеет фрейма, используется фрейм по умолчанию. -
Объект - вторым параметром могут быть любые объекты. (In some older versions of Java you might get a compiler error when using primitive types directly).
-
String - Третий параметр - это строка, помещенная в заголовок диалогового окна сообщения.
-
int - int, следующий за строкой, - это
MessageType. РазличныеMessageTypesдляJOptionPane:-
СООБЩЕНИЕ ОБ ОШИБКЕ
-
INFORMATION_MESSAGE
-
ПРЕДУПРЕЖДЕНИЕ
-
QUESTION_MESSAGE
-
PLAIN_MESSAGE
-
-
Значок - последний параметр - это
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");
}
}
Выход:

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);
}
}
Выход:

Пример сообщения об ошибке (для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);
}
}
Выход:

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);
}
}
Выход:

Пример с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);
}
}
Выход:

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);
}
}
Выход:
