这是JOptionPane
类的showMessageDialog()
方法的回顾。 这种方法是一种快速简便的方法,可以将发生的事情告诉用户。 可以使用以下参数组合调用showMessageDialog()
:
Component, Object
Component, Object, String, int
Component, Object, String, int, Icon
- 组件–第一个参数是一个组件,该组件确定显示对话框的框架; 如果为null,或者
parentComponent
没有框架,则使用默认框架。 - 对象–第二个参数可以是任何对象。 (在某些Java的旧版本中,当直接使用原始类型时,您可能会遇到编译器错误) 。
- 字符串–第三个参数是作为消息对话框窗口标题放置的字符串。
- int –字符串之后的int是
MessageType
。JOptionPane
的不同MessageTypes
是:- 错误信息
- INFORMATION_MESSAGE
- 警告信息
- QUESTION_MESSAGE
- PLAIN_MESSAGE
- Icon –最后一个参数是显示在对话框中的
Icon
,它将覆盖默认的MessageType
图标。
1.组件与对象
使用消息对话框的最简单方法。 Component
设置为null并使用String
作为第二个参数的示例:
SimpleDialog1.java
package com.mkyong.messageDialog;
import javax.swing.JOptionPane;
public class SimpleDialog1 {
public static void main(String[] args){
JOptionPane.showMessageDialog(null, "Simple Information Message");
}
}
输出:
2.组件,对象,字符串和整数
在消息对话框中添加更多信息。 Component
设置为null并以double
作为第二个参数的示例:
SimpleDialog2a.java
package com.mkyong.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.mkyong.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.mkyong.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
。 我们还使用对UIManager
的调用来操纵OptionPane
的大小。
MessageDialogPanel.java
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 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);
}
}
输出:
参考文献
翻译自: https://mkyong.com/swing/java-swing-how-to-make-a-simple-dialog/