Java 消息对话框(GUI)
消息对话框包含向用户展示的信息。消息对话框是通过JOptionPane.showMessageDialog()方法开发的。
要在应用程序中创建一个消息对话框,可以使用JOptionPane类的showMessageDialog()函数。该方法需要提供一些信息,如父组件引用、期望的消息内容和对话框的标题。此外,您可以选择四种常量(ERROR_MESSAGE WARNING_MESSAGE等)来指定消息的类型。
使用的方法
- setLayout(…) - 此方法允许我们将容器的布局设置为任何我们想要的布局,例如流式布局、边界布局、网格布局或null布局。
-
setBounds(…) - 仅当JFrame使用了null布局时,这个方法才有用,用于设置组件(如JButton)的大小和位置。
-
setVisible(…) - 用于设置JFrame的可见性。
setVisible(true) // used to set JFrame visible to the users.
setVisible(false) // used to set JFrame not visible to the users.
-
getSource(..) – 获取引发事件的元素的引用,该元素包含在事件对象中。我们使用getSource()方法从事件对象中获取引用。
-
add(…) – 用于将组件(如JButton等)添加到JFrame的方法。
消息对话框的示例
显示ERROR_MESSAGE的程序
// Java program to show ERROR_MESSAGE dialog
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class example extends JFrame implements ActionListener {
JButton b1;
example() {
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[]) {
example f = new example();
f.setBounds(200, 200, 400, 300);
f.setResizable(false);
f.setVisible(true);
}
}
输出
示例2:显示WARNING_MESSAGE的程序
// Java program to show WARNING_MESSAGE dialog
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class example extends JFrame implements ActionListener {
JButton b1;
example() {
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[]) {
example f = new example();
f.setBounds(200, 200, 400, 300);
f.setResizable(false);
f.setVisible(true);
}
}
输出
示例3:演示QUESTION_MESSAGE的程序
// Java program to show QUESTION_MESSAGE
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class example extends JFrame implements ActionListener {
JButton b1;
example() {
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[]) {
example f = new example();
f.setBounds(200, 200, 400, 300);
f.setResizable(false);
f.setVisible(true);
}
}
输出
示例4:显示INFORMATION_MESSAGE的程序
// Java program to show INFORMATION_MESSAGE
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class example extends JFrame implements ActionListener {
JButton b1;
example() {
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[]) {
example f = new example();
f.setBounds(200, 200, 400, 300);
f.setResizable(false);
f.setVisible(true);
}
}
输出
结论
为了高效地让用户了解情况,通常需要向他们展示一个清晰的UI元素,如消息对话框。调用JOptionPane的showMessageDialog()功能可以快速可靠地完成每次需要或需要用户输入的过程。可用于消息的标准设置选项包括四个不同的覆盖,用于特定情况:ERROR_MESSAGE、WARNING_MESSAGE、QUESTION_MESSAGE和INFORMATION_MESSAGE。当然,由于我们还有另外五种补充方法可供我们使用,即-setLayout()、setBounds()、setVisible()、getSource()和add(),可以对UI中的任何消息类型进行精细调整。