我正在尝试根据JOptionPane.showInputDialog
创建从C到F的临时转换,然后会在JOptionPane.showMessageDialog
中显示对用户的转换。但我一直找不到合适的方法发现错误。
以下是代码:
package assignment2_2;
import javax.swing.JOptionPane;
public class Assignment2_2 {
public static void main(String[] args) {
// this program will convert celsius to fahrenheit
String celsiusInput = JOptionPane.showInputDialog(null,
"Enter Temperature in Celsius: " , "Temperature Converter",
JOptionPane.QUESTION_MESSAGE);
double celsius = Double.parseDouble(celsiusInput);
double fahrenheit = (9.0/5)*(celsius + 32);
JOptionPane.showMessageDialog(null, + celsius,
" when converted to Fahrenheit is: ", + fahrenheit,
JOptionPane.INFORMATION_MESSAGE);
}
}
这是错误消息:
error: no suitable method found for showMessageDialog(<null>,double,String,double,int)
JOptionPane.showMessageDialog(null, + celsius, " when converted to Fahrenheit is: ", + fahrenheit, JOptionPane.INFORMATION_MESSAGE);
method JOptionPane.showMessageDialog(Component,Object,String,int,Icon) is not applicable
(actual argument double cannot be converted to int by method invocation conversion)
method JOptionPane.showMessageDialog(Component,Object,String,int) is not applicable
(actual and formal argument lists differ in length)
method JOptionPane.showMessageDialog(Component,Object) is not applicable
(actual and formal argument lists differ in length)
1 error
答案 0 :(得分:1)
你的逗号位置是个问题。它本质上是添加不应存在的新参数。
将其更改为:
JOptionPane.showMessageDialog(null, "" + celsius + " when converted to Fahrenheit is: " + fahrenheit, JOptionPane.INFORMATION_MESSAGE);
答案 1 :(得分:0)
您需要小心将逗号放在方法调用中的变量之间。添加到String时,不需要在+符号之间添加逗号。您添加的每个逗号都会告诉编译器接下来的参数是下一个参数。
以下内容:
JOptionPane.showMessageDialog(null, + celsius,
" when converted to Fahrenheit is: ", + fahrenheit,
JOptionPane.INFORMATION_MESSAGE);
您可以从警告中看出编译器正在考虑您正在尝试调用
showMessageDialog(<null>,double,String,double,int)
因为它认为你正在输入空格,所以它会将摄氏和华氏添加为双倍而不是将它们添加到字符串中。
修复后,您还需要在对话框中添加标题以匹配其中一个方法调用,或者您可以删除JOptionPane.INFORMATION_MESSAGE
变量,因为这是默认值,只需使用{ {1}}
这是您希望方法调用的外观:
JOptionPane.showMessageDialog(Component,Object)
答案 2 :(得分:0)
以下是您可能的方法和参数
public static void showMessageDialog(Component parentComponent,
Object message,
String title,
int messageType)
throws HeadlessException
public static void showMessageDialog(Component parentComponent,
Object message)
throws HeadlessException
public static void showMessageDialog(Component parentComponent,
Object message,
String title,
int messageType,
Icon icon)
throws HeadlessException
你当前正在这样做,我看到4个逗号和5个参数。
showMessageDialog(null, + celsius,
" when converted to Fahrenheit is: ", + fahrenheit,
JOptionPane.INFORMATION_MESSAGE);
查看逗号分隔,并确保方法和参数与上述之一匹配。