Java Swing标准对话框

2018-01-09 19:23 更新

Java Swing教程 - Java Swing标准对话框


JOptionPane类使我们很容易创建和显示标准模态对话框。

它包含许多静态方法来创建不同类型的JDialog,用细节填充它们,并将它们显示为模态的JDialog。

当JDialog关闭时,该方法返回一个值以指示用户对JDialog的操作。

JOptionPane类用作工厂来创建标准对话框。

我们可以显示以下四种标准对话框:

  • Message Dialog
  • Confirmation Dialog
  • Input Dialog
  • Option Dialog

JOptionPane类的静态方法显示标准的JDialog具有名称如show Type Dialog()。 类型可以替换为Message,Confirm,Input和Option。

JOptionPane类的静态方法显示标准的JDialog具有名称如show Type Dialog()。 类型可以替换为Message,Confirm,Input和Option。...

所有四种类型的标准对话框都接受不同类型的参数,并返回不同类型的值。

所有四种类型的标准对话框都接受不同类型的参数,并返回不同类型的值。...

ID 参数/说明
1 组件parentComponent JDialog以父组件为中心。 如果它为null,JDialog将在屏幕上居中。
2 对象消息通常,它是一个字符串。 它还可以显示Swing组件,图标。 如果我们传递任何其他对象,则对该对象调用toString()方法,并显示返回的字符串。 我们还可以传递一个对象数组,并且数组的每个元素将一个接一个地垂直显示。
3 int messageType 设置消息的类型。 根据消息的类型,在对话框中将显示一个适当的图标。 可用的消息类型有:
  • ERROR_MESSAGE
  • INFORMATION_MESSAGE
  • WARNING_MESSAGE
  • QUESTION_MESSAGE
  • PLAIN_MESSAGE
  • PLAIN_MESSAGE类型不显示任何图标。
    4 Int选项类型指定对话框上的按钮。 我们可以使用以下选项。
    • DEFAULT_OPTION
    • YES_NO_OPTION
    • YES_NO_CANCEL_OPTION
    • OK_CANCEL_OPTION
    • DEFAULT_OPTION显示确定按钮。 其他选项显示一组按钮,如他们的名字建议。 我们可以通过为showOptionDialog()方法提供options参数来自定义按钮和文本的数量。
      5 Int选项类型指定对话框上的按钮。 我们可以使用以下选项。
      • DEFAULT_OPTION
      • YES_NO_OPTION
      • YES_NO_CANCEL_OPTION
      • OK_CANCEL_OPTION
      • DEFAULT_OPTION显示确定按钮。 其他选项显示一组按钮,如他们的名字建议。 我们可以通过为showOptionDialog()方法提供options参数来自定义按钮和文本的数量。...
        6 字符串标题对话框的标题。 如果我们不传递此参数,则提供默认标题。
        7 对象initialValue 设置在输入对话框中显示的初始值。

        通常,当用户关闭对话框时,我们要检查用户点击的按钮。 下面是常量列表,我们可以使用它来检查与retuned值的相等性:

        • OK_OPTION
        • YES_OPTION
        • NO_OPTION
        • CANCEL_OPTION
        • CLOSED_OPTION

        CLOSED_OPTION表示用户使用标题栏上的关闭(X)菜单按钮关闭对话框。

        OK_OPTION表示用户单击对话框上的确定按钮将其关闭。

        OK_OPTION表示用户单击对话框上的确定按钮将其关闭。...

        对于对话框中的多个按钮,0表示第一个按钮单击,1个表示第二个按钮单击,依此类推。

        对于对话框中的多个按钮,0表示第一个按钮单击,1个表示第二个按钮单击,依此类推。...

        消息对话框显示带有OK按钮的信息。 该方法不返回任何值。 showMessageDialog()方法的签名如下所示:

        showMessageDialog(Component  parentComponent, Object  message)
        
        showMessageDialog(Component  parentComponent, Object message, String  title, int  messageType)
        
        showMessageDialog(Component  parentComponent, Object message, String  title, int messageType,   Icon  icon)
        

        消息对话框显示带有OK按钮的信息。 该方法不返回任何值。 showMessageDialog()方法的签名如下所示:...

        import javax.swing.JOptionPane;
        
        public class Main {
          public static void main(String[] args) {
            JOptionPane.showMessageDialog(null, "Message!", "FYI",
                JOptionPane.INFORMATION_MESSAGE);
        
          }
        }
        

        我们可以使用showConfirmDialog()方法显示确认对话框。

        用户的响应由返回值指示。

        以下代码显示确认对话框,并处理用户的响应:

        //from  w  ww  .j a  v a 2  s .c  om
        import javax.swing.JOptionPane;
        
        public class Main {
          public static void main(String[] args) {
            int response = JOptionPane.showConfirmDialog(null,
                "Save the file?",
                "Confirm  Save  Changes", JOptionPane.YES_NO_CANCEL_OPTION,
                JOptionPane.QUESTION_MESSAGE);
        
            switch (response) {
            case JOptionPane.YES_OPTION:
              System.out.println("yes");
              break;
            case JOptionPane.NO_OPTION:
              System.out.println("no");
              break;
            case JOptionPane.CANCEL_OPTION:
              System.out.println("cancel");
              break;
            case JOptionPane.CLOSED_OPTION:
              System.out.println("closed.");
              break;
            default:
              System.out.println("something else");
            }
        
          }
        }
        


        输入对话框

        我们可以使用showInputDialog()方法请求用户输入,并为用户的输入指定一个初始值。

        如果我们希望用户从列表中选择一个值,我们可以传递一个包含该列表的对象数组。 UI将在合适的组件(如JComboBox或JList)中显示列表。

        如果我们希望用户从列表中选择一个值,我们可以传递一个包含该列表的对象数组。 UI将在合适的组件(如JComboBox或JList)中显示列表。...

        import javax.swing.JOptionPane;
        /*from w w  w. j av  a 2 s  .  c om*/
        public class Main {
          public static void main(String[] args) {
            String response = JOptionPane
                .showInputDialog("Please enter.");
        
            if (response == null) {
              System.out.println("cancelled.");
            } else {
              System.out.println("entered:  " + response);
            }
        
          }
        }
        

        上面的代码中的showInputDialog()方法返回一个String,这是用户在输入字段中输入的文本。

        如果用户取消输入对话框,则返回null。



        输入对话框...

        以下代码显示带有选项列表的输入对话框。 用户可以从列表中选择一个选项。 此版本的showInputDialog()方法返回一个对象,而不是一个字符串。

        import javax.swing.Icon;
        import javax.swing.JComponent;
        import javax.swing.JOptionPane;
        //  w  w w.  j  a  v  a2s .co m
        public class Main {
          public static void main(String[] args) {
            JComponent parentComponent = null;
            Object message = "Please select";
            String title = "JOptionPane Input Dialog";
            int messageType = JOptionPane.INFORMATION_MESSAGE;
            Icon icon = null;
            Object[] selectionValues = new String[] { "A", "B", "C" };
            Object initialSelectionValue = selectionValues[2];
            Object response = JOptionPane.showInputDialog(parentComponent, message,
                title, messageType, icon, selectionValues, initialSelectionValue);
        
            if (response == null) {
              System.out.println("we have  cancelled the   input dialog.");
            } else {
              System.out.println("we entered:  " + response);
            }
          }
        }
        

        自定义选项按钮

        我们可以使用showOptionDialog()方法自定义选项按钮,该方法声明如下:

        int showOptionDialog(Component parentComponent,  
                             Object message,
                             String title, 
                             int optionType, 
                             int  messageType,   
                             Icon  icon, 
                             Object[] options, 
                             Object initialValue)
        

        我们可以使用showOptionDialog()方法自定义选项按钮,该方法声明如下:...

        如果我们在options参数中传递组件,则组件将显示为选项。 如果我们传递任何其他对象(如字符串),则会在options数组中为每个元素显示一个按钮。

        以下代码显示如何在对话框中显示自定义按钮。

        import javax.swing.Icon;
        import javax.swing.JComponent;
        import javax.swing.JOptionPane;
        /* ww w  .j a  v  a 2 s .c o m*/
        public class Main {
          public static void main(String[] args) {
            JComponent parentComponent = null;
            Object message = "How  is JOptionPane?";
            String title = "JOptionPane Option  Dialog";
            int messageType = JOptionPane.INFORMATION_MESSAGE;
            Icon icon = null;
            Object[] options = new String[] { "A", "B", "C" };
            Object initialOption = options[2];
            int response = JOptionPane.showOptionDialog(null, message, title,
                JOptionPane.DEFAULT_OPTION, JOptionPane.QUESTION_MESSAGE, icon,
                options, initialOption);
            switch (response) {
            case 0:
            case 1:
            case 2:
              System.out.println("we selected:" + options[response]);
              break;
            case JOptionPane.CLOSED_OPTION:
              System.out.println("we closed the   dialog box.");
              break;
            default:
              System.out.println("I don"t know what  we  did.");
            }
        
          }
        }
        

        自定义选项按钮...

        以下代码显示如何在对话框中显示自定义按钮。...

        以下代码显示自定义可调整大小的对话框。

        import javax.swing.JDialog;
        import javax.swing.JOptionPane;
        
        public class Main {
          public static void main(String[] args) {
            JOptionPane pane = new JOptionPane("JOptionPane",
                JOptionPane.INFORMATION_MESSAGE);
            String dialogTitle = "Resizable Custom Dialog";
            JDialog dialog = pane.createDialog(dialogTitle);
            dialog.setResizable(true);
            dialog.setVisible(true);
        
          }
        }
        
        以上内容是否对您有帮助:
        在线笔记
        App下载
        App下载

        扫描二维码

        下载编程狮App

        公众号
        微信公众号

        编程狮公众号