【问题标题】:JOptionPane showOptionDialogJOptionPane 显示选项对话框
【发布时间】:2012-11-08 21:43:56
【问题描述】:

我想使用具有两个按钮的 JOptionPane 创建一个 showOptionDialog:公制和英制。如果说,单击 Metric,将加载 Metric GUI。相反,如果单击 Imperial,则会加载 Imperial GUI。

我该怎么做? 非常感谢。

【问题讨论】:

    标签: java dialog option joptionpane


    【解决方案1】:
    int choice = JOptionPane.showOptionDialog(null, //Component parentComponent
                                   "Metric or Imperial?", //Object message,
                                   "Choose an option", //String title
                                   JOptionPane.YES_NO_OPTION, //int optionType
                                   JOptionPane.INFORMATION_MESSAGE, //int messageType
                                   null, //Icon icon,
                                   {"Metric","Imperial"}, //Object[] options,
                                   "Metric");//Object initialValue 
    if(choice == 0 ){
       //Metric was chosen
    }else{
       //Imperial was chosen
    }
    

    【讨论】:

    • 如果确实是一个问题,您应该使用 JOptionPane.QUESTION_MESSAGE 作为 messagetType
    【解决方案2】:
    Object[] options = {"Metric","Imperial"};
    int n = JOptionPane.showOptionDialog(null,
                "A Message",
                "A Title",
                JOptionPane.YES_NO_CANCEL_OPTION,
                JOptionPane.DEFAULT_OPTION,
                null,
                options,
                options[1]);  
    
    System.out.println(n);  
    
    JFrame metric = new JFrame("Metric");  
    metric.setBounds(0, 0, 320, 240);  
    
    JFrame imperial = new JFrame("Imperial");  
    imperial.setBounds(0, 0, 320, 240);  
    
    if(n==0){  
         metric.setVisible(true);  
    }else if(n==1){
        imperial.setVisible(true);
    }else{
        System.out.println("no option choosen");
    }
    

    【讨论】:

      【解决方案3】:

      查看http://docs.oracle.com/javase/tutorial/uiswing/components/dialog.html,它几乎拥有您需要的一切。

      “据我所知,JOptionPane 非常适合它可以做的事情,但除此之外你不能真正改变功能(不容易)。如果你想创建自己的自定义对话框,JDialog 最好继承”

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-01-31
        • 2020-02-16
        • 1970-01-01
        • 2011-12-09
        • 2016-02-02
        • 1970-01-01
        • 1970-01-01
        • 2019-02-11
        相关资源
        最近更新 更多