Java:最后运行另一个程序

时间:2013-06-24 23:23:38

标签: java joptionpane

我正在学习Java,我写了这个非常简单的课程。一切都很好,直到我走到尽头。在第二个showinputDialog之后,它继续从我完成的另一个java文件的另一个对话框中继续。我想我的代码中有错误,或者我的日食中的某些设置已关闭。

// 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)

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

enter image description here

2 个答案:

答案 0 :(得分:1)

更好的答案,因为您正在运行eclipse而不是Run As,您可能需要点击Debug As,如图所示

debug as

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

enter image description here

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

答案 1 :(得分:0)

根据Javadocs for Double.parseDouble

  

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

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

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