Java JOptionPane showmessagedialog出现初学者错误
我一直在关注YouTube上关于Java使用Eclipse的教程 目前,我正在尝试使用Java JOptionPane showmessagedialog出现初学者错误,java,double,joptionpane,Java,Double,Joptionpane,我一直在关注YouTube上关于Java使用Eclipse的教程 目前,我正在尝试使用JOptionPane.showMessageDialog将两个double相乘,并将结果输出为double,但它给了我一个错误 这是我的密码: import javax.swing.JOptionPane; public class Variables { public static void main(String arg[]) { double length = 3; doubl
JOptionPane.showMessageDialog
将两个double相乘,并将结果输出为double,但它给了我一个错误
这是我的密码:
import javax.swing.JOptionPane;
public class Variables {
public static void main(String arg[])
{
double length = 3;
double width = 2;
double area = length*width;
JOptionPane myIO = new JOptionPane();
myIO.showMessageDialog(null, area);
}
}
错误是:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The method showMessageDialog(Component, Object) in the type JOptionPane
is not applicable for the arguments (null, double)
at Variables.main(Variables.java:11)
我完全掌握了我在教程中看到的东西,所以我不知道我做错了什么。我觉得我没有导入一些库或我应该有的东西,但Eclipse似乎可以识别
JOptionPane
和showMessageDialog
将您的main更改为:
public static void main(String arg[])
{
double length = 3;
double width = 2;
double area = length*width;
JOptionPane.showMessageDialog(null, area);
}
使用
JOptionPane
时,我们不需要任何声明 尝试将双区域
更改为双区域
double
是一个原语,因此不会继承对象
,该对象是showMessageDialog
所期望的参数类型
Double
是Double
的包装类,与所有对象一样,继承自Object
Java从Double
转换为Double
通常没有问题,反之亦然,但它接受Object
类型的参数这一事实可能意味着您实际上并不想做您所做的事情
我要注意的是,这在NetBeans(Java7)和(Java6)中都是有效的(除了预期的运行时错误),所以可能Eclipse在这里是错误的,或者您使用的是旧版本的Java。谈到Java,您应该始终运行最新版本,除非您有特定的理由不这样做。这只是一个例外。这段代码有很多问题,我建议您阅读该代码,而不是您所看到的代码 首先,您甚至不应该尝试运行未编译的代码。在Eclipse中打开Problems视图,如果该视图中列出了一个编译错误,甚至不要考虑运行代码 然后阅读编译器错误消息并尝试理解它们以修复它们。 这里的问题是,您可能正在使用一个非常非常旧的JDK版本(Java 5之前),它不会自动将原语(double)装箱到它们的包装类型(double)中。下载最新版本的JDK,并配置eclipse以使用此新版本 但还有其他问题:
- 您不应该创建新的JOptionPane来调用静态方法showMessageDialog()。只需使用JOptionPane.showMessageDialog()
- 您不应该在事件分派线程之外使用Swing。鉴于您是一名新手,现在不要使用Swing,只调用yse System.out.println()在屏幕上打印值
import javax.swing.JOptionPane;
public class Variables {
public static void main(String arg[])
{
double length = 3;
double width = 2;
double area = length*width;
JOptionPane myIO = new JOptionPane();
JOptionPane.showMessageDialog(null, (int)area);
}
}
publicstaticvoidshowmessagedialog(componentparentcomponent,objectmessage)需要一个组件和一个对象。如果要传递一个double,可能需要将对象加倍,而不是将基本体加倍。