JOptionPane
是 Java Swing 库中的一个类,用于生成标准的对话框,比如信息对话框、输入对话框、确认对话框或者选项对话框。这些对话框用于简单的信息通知、用户输入或者用户确认。
创建对话框的常见方法:
- showMessageDialog - 显示带有消息的简单对话框。
- showConfirmDialog - 显示用于请求确认的对话框,并返回用户点击的选项。
- showInputDialog - 显示请求用户输入的对话框,并返回用户输入的内容。
- showOptionDialog - 创建一个自定义的对话框,可以自定义按钮文本、消息类型等。
方法参数:
- parentComponent: 定义对话框的父组件,可以是
null
或者指定的组件(如 JFrame)。 - message: 要显示的
Object
类型的消息内容。 - title: 对话框的标题。
- messageType: 指定对话框消息类型(如
JOptionPane.INFORMATION_MESSAGE
)。 - optionType: 指定对话框选项类型(如
JOptionPane.YES_NO_CANCEL_OPTION
)。 - icon: 自定义图标。
- options: 自定义按钮上的文本。
- initialValue: 默认选中的值。
示例代码:
下面是一些使用JOptionPane
的基本示例。
显示信息对话框:
JOptionPane.showMessageDialog(null, "Hello, World!", "Information", JOptionPane.INFORMATION_MESSAGE);
显示确认对话框:
int result = JOptionPane.showConfirmDialog(null, "Are you sure?", "Confirmation", JOptionPane.YES_NO_OPTION);
if (result == JOptionPane.YES_OPTION) {
// 用户点击了"Yes"
} else if (result == JOptionPane.NO_OPTION) {
// 用户点击了"No"
}
显示输入对话框:
String name = JOptionPane.showInputDialog(null, "Enter your name:", "Input", JOptionPane.QUESTION_MESSAGE);
if (name != null) {
// 用户输入了内容
}
显示选项对话框:
Object[] options = { "Yes, please", "No, thanks", "No eggs, no ham!" };
int n = JOptionPane.showOptionDialog(null,
"Would you like some green eggs to go with that ham?",
"A Silly Question",
JOptionPane.YES_NO_CANCEL_OPTION,
JOptionPane.QUESTION_MESSAGE,
null,
options,
options[2]);
注意事项:
- 当用户关闭对话框时,如果没有选择任何选项,
showConfirmDialog
和showOptionDialog
通常会返回一个预定义的值(如JOptionPane.CLOSED_OPTION
)。 - 如果需要对话框在某些特定的屏幕位置显示,需要设置
parentComponent
。 - 对话框是模态的,意味着它会阻止用户与其他用户界面组件交互,直到对话框被关闭。
下是一些基本的JOptionPane
使用例子,这些例子覆盖了常见的对话框类型。
1. 信息对话框
import javax.swing.JOptionPane;
public class JOptionPaneExample {
public static void main(String[] args) {
// 显示一个简单的信息对话框
JOptionPane.showMessageDialog(null, "操作成功完成!", "信息", JOptionPane.INFORMATION_MESSAGE);
}
}
2. 确认对话框
import javax.swing.JOptionPane;
public class JOptionPaneExample {
public static void main(String[] args) {
// 显示一个用于确认的对话框,并根据用户响应进行操作
int userChoice = JOptionPane.showConfirmDialog(null, "确定要退出程序吗?", "退出确认", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
if (userChoice == JOptionPane.YES_OPTION) {
System.exit(0); // 用户确认退出
}
// 如果选择 NO_OPTION 或关闭对话框,则程序继续运行
}
}
3. 输入对话框
import javax.swing.JOptionPane;
public class JOptionPaneExample {
public static void main(String[] args) {
// 显示一个输入对话框,提示用户输入他们的名字
String name = JOptionPane.showInputDialog(null, "请输入你的名字:", "姓名输入", JOptionPane.QUESTION_MESSAGE);
if (name != null && !name.trim().isEmpty()) {
JOptionPane.showMessageDialog(null, "你好, " + name + "!", "问候", JOptionPane.INFORMATION_MESSAGE);
} else {
JOptionPane.showMessageDialog(null, "你没有输入名字.", "错误", JOptionPane.ERROR_MESSAGE);
}
}
}
4. 选项对话框
import javax.swing.JOptionPane;
public class JOptionPaneExample {
public static void main(String[] args) {
// 自定义按钮文本
Object[] options = { "是", "否", "取消" };
int choice = JOptionPane.showOptionDialog(null,
"你确定要继续执行该操作吗?",
"选择一个操作",
JOptionPane.YES_NO_CANCEL_OPTION,
JOptionPane.QUESTION_MESSAGE,
null,
options,
options[0]);
switch (choice) {
case JOptionPane.YES_OPTION:
// 用户选择 "是"
JOptionPane.showMessageDialog(null, "你选择了 '是'!", "选项", JOptionPane.INFORMATION_MESSAGE);
break;
case JOptionPane.NO_OPTION:
// 用户选择 "否"
JOptionPane.showMessageDialog(null, "你选择了 '否'!", "选项", JOptionPane.INFORMATION_MESSAGE);
break;
case JOptionPane.CANCEL_OPTION:
// 用户选择 "取消"
JOptionPane.showMessageDialog(null, "你选择了 '取消'!", "选项", JOptionPane.INFORMATION_MESSAGE);
break;
default:
// 用户关闭了对话框
JOptionPane.showMessageDialog(null, "没有选择任何选项.", "选项", JOptionPane.INFORMATION_MESSAGE);
}
}
}
在这些示例中,所有的对话框都是模态的,即它们会阻塞其它用户界面的交互,直到用户完成与对话框的交互。这些基本的例子展示了如何使用JOptionPane
来与用户进行简单的交云。
请记住,在实际的应用程序中,你可能需要将这些代码片段集成进你的事件处理逻辑中,比如响应按钮点击或者菜单选择的事件。