为什么我在JOptionPane.showInputDialog中遇到“void无法转换为int”错误?

时间:2015-10-05 23:06:29

标签: java joptionpane

我在学校有这个作业,我必须使用JOptionPane来计算不同形状的区域,但是当我使用JOptionPane.showMessageDialog时,它会变成红色,错误代码会显示{{1} }无法转换为void。有人可以帮我弄清楚如何使用int吗?

JOptionPane.showMessageDialog

1 个答案:

答案 0 :(得分:0)

您的问题与JOptionPane无关,与您的area*方法无关

首先,您将所有方法声明为void ...

public static void areaTriangle(int base, int height) {
    System.out.println(0.5 * base * height);
}

public static void areaCircle(int radius, double area) {
    area = Math.PI * (radius * radius);
    System.out.println(area);
}

public static void areaRectangle(int length, int width) {
    System.out.println(length * width);
}

但是当你调用它们时,你会尝试将一个返回结果分配给一个变量......

int areaT = areaTriangle(base, height);
//...
int areaC = areaCircle(radius, area);
//...
int areaR = areaRectangle(length, width);

这根本没有意义。

根据您的目标,您需要更改area*方法以返回某种值......

public static double areaTriangle(int base, int height) {
    return 0.5 * base * height;
}

public static double areaCircle(int radius, double area) {
    return Math.PI * (radius * radius);
}

public static int areaRectangle(int length, int width) {
    return length * width;
}

然后您可以将方法的返回值分配给某些变量...

double areaT = areaTriangle(base, height);
//...
double areaC = areaCircle(radius, area);
//...
int areaR = areaRectangle(length, width);