Java的JOptionPane

JOptionPane 是 Java Swing 库中的一个类,用于生成标准的对话框,比如信息对话框、输入对话框、确认对话框或者选项对话框。这些对话框用于简单的信息通知、用户输入或者用户确认。

创建对话框的常见方法:

  1. showMessageDialog - 显示带有消息的简单对话框。
  2. showConfirmDialog - 显示用于请求确认的对话框,并返回用户点击的选项。
  3. showInputDialog - 显示请求用户输入的对话框,并返回用户输入的内容。
  4. 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来与用户进行简单的交云。

请记住,在实际的应用程序中,你可能需要将这些代码片段集成进你的事件处理逻辑中,比如响应按钮点击或者菜单选择的事件。

  • 10
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值