首页 > 社交 > 科普中国

JavaGUI

常驻编辑 科普中国 2022-06-24 刻度   对话框   用户界面   组件   布局   按钮   选项   面板   图形   文本   窗口   文件
  • title: 对话框标题。
  • message: 消息内容。
  • optionType: 选项按钮的类型。
  • selectionValues、initialSelectionValue: 提供的输入选项,以及默认选中的选项。
  • icon: 自定义的对话框图标,如果传 null,则图标类型由 messageType 决定。
  • messageType: 消息类型,主要是提供默认的对话框图标。可能的值为:JOptionPane.PLAIN_MESSAGE 简单消息(不使用图标)JOptionPane.INFORMATION_MESSAGE 信息消息(默认)JOptionPane.QUESTION_MESSAGE 问题消息JOptionPane.WARNING_MESSAGE 警告消息JOptionPane.ERROR_MESSAGE 错误消息
  • 对话框

    class JOptionPaneUse {
        public JOptionPaneUse() {
            final JFrame jf = new JFrame("测试窗口");
            jf.setSize(400, 400);
            jf.setLocationRelativeTo(null);
            jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    
            /*
             * 1. 消息对话框(信息消息)
             */
            JButton btn01 = new JButton("showMessageDialog(信息消息)");
            btn01.addActionListener(e -> {
                // 消息对话框无返回, 仅做通知作用
                JOptionPane.showMessageDialog(jf, "通知信息", "消息标题", JOptionPane.INFORMATION_MESSAGE
                );
            });
    
            /*
             * 2. 消息对话框(警告消息)
             */
            JButton btn02 = new JButton("showMessageDialog(警告消息)");
            btn02.addActionListener(e -> {
                // 消息对话框无返回, 仅做通知作用
                JOptionPane.showMessageDialog(jf, "警告信息", "消息标题", JOptionPane.WARNING_MESSAGE);
            });
    
            /*
             * 3. 确认对话框
             */
            JButton btn03 = new JButton("showConfirmDialog");
            btn03.addActionListener(e -> {
                /*
                 * 返回用户点击的选项, 值为下面三者之一:
                 *     是:   JOptionPane.YES_OPTION
                 *     否:   JOptionPane.NO_OPTION
                 *     取消: JOptionPane.CANCEL_OPTION
                 *     关闭: JOptionPane.CLOSED_OPTION
                 */
                int result = JOptionPane.showConfirmDialog(jf, "确认删除?", "提示", JOptionPane.YES_NO_CANCEL_OPTION);
                System.out.println("选择结果: " + result);
            });
    
            /*
             * 4. 输入对话框(文本框输入)
             */
            JButton btn04 = new JButton("showInputDialog(文本框输入)");
            btn04.addActionListener(e -> {
                // 显示输入对话框, 返回输入的内容
                String inputContent = JOptionPane.showInputDialog(jf, "输入你的名字:", "默认内容");
                System.out.println("输入的内容: " + inputContent);
            });
    
            /*
             * 5. 输入对话框(下拉框选择)
             */
            JButton btn05 = new JButton("showInputDialog(下拉框选择)");
            btn05.addActionListener(e -> {
                Object[] selectionValues = new Object[]{"香蕉", "雪梨", "苹果"};
                // 显示输入对话框, 返回选择的内容, 点击取消或关闭, 则返回null
                Object inputContent = JOptionPane.showInputDialog(jf, "选择一项: ", "标题",
                        JOptionPane.PLAIN_MESSAGE, null, selectionValues, selectionValues[0]);
                System.out.println("输入的内容: " + inputContent);
            });
    
            /*
             * 6. 选项对话框
             */
            JButton btn06 = new JButton("showOptionDialog");
            btn06.addActionListener(e -> {
                // 选项按钮
                Object[] options = new Object[]{"香蕉", "雪梨", "苹果"};
                // 显示选项对话框, 返回选择的选项索引, 点击关闭按钮返回-1
                int optionSelected = JOptionPane.showOptionDialog(jf, "请点击一个按钮选择一项", "对话框标题",
                        JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.ERROR_MESSAGE, null,
                        options,    // 如果传null, 则按钮为 optionType 类型所表示的按钮(也就是确认对话框)
                        options[0]
                );
                if (optionSelected >= 0) {
                    System.out.println("点击的按钮: " + options[optionSelected]);
                }
            });
    
            // 垂直排列按钮
            Box vBox = Box.createVerticalBox();
            vBox.add(btn01);
            vBox.add(btn02);
            vBox.add(btn03);
            vBox.add(btn04);
            vBox.add(btn05);
            vBox.add(btn06);
    
            JPanel panel = new JPanel();
            panel.add(vBox);
    
            jf.setContentPane(panel);
            jf.setVisible(true);
        }
    }
        

    相关阅读:

  • 关于温度的知识
  • 又是一年“618”,生鲜电商静悄悄?
  • matplotlib
  • 家乡异地皆乐趣:浪琴Spirit
  • 崩溃的瞬间
  • 好物分享:适合上班族秋天佩戴的平价手表
  • 裁员在路上,谷歌告别好日子?
  • 欧米茄推出全新
  • 万宝龙1858系列两地时腕表“中国特别款”开箱短评「最
  • 看到这款表是“真的酸”
    • 网站地图 |
    • 声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不做权威认证,如若验证其真实性,请咨询相关权威专业人士。