Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在消息对话框中看不到我的结果_Java - Fatal编程技术网

Java 在消息对话框中看不到我的结果

Java 在消息对话框中看不到我的结果,java,Java,我正在尝试创建一个向导来转换长度单位。我能够创建一个OptionDialog并让用户选择要进行的转换类型;但是,我无法在最后的MessageDialog中显示结果。以下是我正在使用的代码: 导入java.util.Scanner; 导入javax.swing.JOptionPane; 公共类长度转换{ 公共静态无效字符串[]args{ 双cmValue,inch值; 智力选择; //创建扫描仪对象 Scanner fromKeyboard=新建ScannerSystem.in; //自定义对象文

我正在尝试创建一个向导来转换长度单位。我能够创建一个OptionDialog并让用户选择要进行的转换类型;但是,我无法在最后的MessageDialog中显示结果。以下是我正在使用的代码:

导入java.util.Scanner; 导入javax.swing.JOptionPane; 公共类长度转换{ 公共静态无效字符串[]args{ 双cmValue,inch值; 智力选择; //创建扫描仪对象 Scanner fromKeyboard=新建ScannerSystem.in; //自定义对象文本 对象[]选项={cm到英寸,英寸到厘米,取消}; //选项对话框 choice=JOptionPane.showOptionDialognull,选择一个选项,长度转换,JOptionPane.YES\u NO\u CANCEL\u选项,JOptionPane.INFORMATION\u消息,null,选项,选项[2]; //开始“if”语句 如果选择==0{ //显示输入对话框 String inputType=JOptionPane.ShowInputDialog输入要转换的cm:; //读取用户类型的值 cmValue=fromKeyboard.nextDouble; //计算厘米到英寸 inchValue=cmValue/2.54; //预览结果 字符串输出类型=JOptionPane.showInputDialognull,+inchValue+inches; }否则{ //要求用户输入值 String inputType=JOptionPane.ShowInputDialog输入要转换的英寸:; //读取用户类型的值 inchValue=fromKeyboard.nextDouble; //计算英寸到厘米 cmValue=inchValue*2.54; //显示结果 JOptionPane.showMessageDialognull,+cmValue+cm; }//else语句的结尾 }//末端总管 }//结束类长度转换
我需要做些什么才能在最后显示结果?

该应用程序工作正常,但设计非常糟糕

这是一个更好的例子

public class LengthConversion {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        double cmValue, inchValue;
        int choice;

        //Customise Object text
        Object[] options = {"cm-to-inch", "inch-to-cm", "Cancel"};

        //Option Dialog box
        choice = JOptionPane.showOptionDialog(null, "Choice an option", "Length Conversion", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.INFORMATION_MESSAGE, null, options, options[2]);

        String inputType;
        switch(choice) {
            case JOptionPane.YES_OPTION:
                try {
                    //Show Input Dialog Box
                    inputType = JOptionPane.showInputDialog("Enter the cm to convert:");
                    cmValue = Double.parseDouble(inputType);
                    //Compute cm to inch
                    inchValue = cmValue / 2.54;
                    //Preview result
                    JOptionPane.showMessageDialog(null, + inchValue + " inches");
                }
                catch(NumberFormatException e) {
                    JOptionPane.showMessageDialog(null, e.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
                }
                break;

            case JOptionPane.NO_OPTION:
                try {
                    //Ask user to enter value
                    inputType = JOptionPane.showInputDialog("Enter the inch to convert:");
                    //Read value that user type
                    inchValue = Double.parseDouble(inputType);
                    //compute inch to cm
                    cmValue = inchValue * 2.54;
                    //Display result
                    JOptionPane.showMessageDialog(null, + cmValue + " cm");
                }
                catch(NumberFormatException e) {
                    JOptionPane.showMessageDialog(null, e.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
                }
                break;
        }
    }
}

考虑choice=0和choice=1,解决方案类似,此代码有以下行:

cmValue = fromKeyboard.nextDouble();
这基本上是在等待你从键盘输入一个数字。程序挂在那里等待你输入一个数字

对于解决方案,请将其注释掉并添加:

//          cmValue = fromKeyboard.nextDouble();
            cmValue = Integer.parseInt(inputType);

删除第一个+此处:JOptionPane.showMessageDialognull,+cmValue+cm;所以它是:JOptionPane.showMessageDialognull,cmValue+cm;请记住,这是一个粗略的骨架。要成为一个真正优秀的泛型操作,必须在单独的函数中导出。