0

我正在学习Java,我写了这个非常简单的类。一切都很好,直到我接近尾声。在第二个之后showinputDialog,它从我完成的另一个 java 文件继续到另一个对话框。我认为要么我的代码有错误,要么我的 Eclipse 中的某些设置已关闭。

// Reads in the radius and length of a cylinder and computes volume
// using the formula: area = radius * radius * PI
//                    volume = area * length

import javax.swing.JOptionPane;

class ComputeVolumeOfCyclinder {
    public static void main(String[] arugs) {
        final double PI = 3.1415;
        String radiusString = JOptionPane.showInputDialog(
                "Enter the radius, \n for example: 15.25");

        String lengthString = JOptionPane.showInputDialog(
                "Enter the length, \n for example: 50.15");

        double radius = Double.parseDouble(radiusString);
        double length = Double.parseDouble(lengthString);

        double area = radius * radius * PI;
        double volume = area * length;

        area = (int)area * 100 / 100.0;
        volume = (int)volume * 100 / 100.0;

        String output = "The area is " + area + "\n The volume is " + volume; 
        JOptionPane.showMessageDialog(null, output);
    }
}

在我存在 Eclipse 并尝试再次阅读后,它会显示此错误消息。

Exception in thread "main" java.lang.NullPointerException
    at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:989)
    at java.lang.Double.parseDouble(Double.java:510)
    at ComputeLoanUsingInputDialog.main(ComputeLoanUsingInputDialog.java:14)

更新:我不知道为什么,但现在看来我什至无法运行这个程序。通常我按下绿色的播放按钮,它就会运行我的程序。但是重新启动后,它总是运行另一个程序(不是我打算做的)。我认为我当前的程序应该是选项之一?

在此处输入图像描述

4

2 回答 2

1

一个更好的答案,因为您正在运行 eclipse 而不是Run As您可能想要单击Debug As图片中看到的

调试为

然后用step into(F5) 和step over(F6)

在此处输入图像描述

经过测试,如果您输入正确的值,您的代码运行良好,但如果您取消showInputDialog将返回null,您必须检查它,并检查是否只允许使用数值。

于 2013-06-24T23:49:09.020 回答
0

根据JavadocsDouble.parseDouble

抛出: NullPointerException - 如果字符串为空

字符串radiusStringlengthString必须是null(以第 14 行为准)。

如果输入被取消,该方法showInputDialog将返回。null您将需要处理这种情况。

于 2013-06-24T23:27:57.240 回答