我差不多完成了创建这个简单的代码,但是在从JOptionPane创建输入对话框并给它一个变量时,我一直收到错误。
例如:
name = JOptionPane.showInputDialog(null, "What is your name?",
"Question",
JOptionPane.QUESTION_MESSAGE,
iconhello,
null,
"");
当名称在前面时,我得到错误,当它没有错误并且我的代码运行顺利时,但是我需要将输入返回到我稍后在代码中创建的消息对话框。
这是完整的代码:
public static void main(String[] args) {
String name, choice, choice2, choice3, order;
ImageIcon iconhello;//identifying the new icon created
iconhello = new ImageIcon("hello.gif");
ImageIcon iconcat1;
iconcat1 = new ImageIcon("cat1.gif");
ImageIcon iconcat7;
iconcat7 = new ImageIcon("cat7.gif");
ImageIcon icondrink;
icondrink = new ImageIcon("drink.gif");
ImageIcon iconpizza;
iconpizza = new ImageIcon("pizza.gif");
name = JOptionPane.showInputDialog(null, "What is your name?",
"Question",
JOptionPane.QUESTION_MESSAGE,
iconhello,
null,
"");
Object[] possibilities= {"Chicken Sub", "Chicken Teriyaki Sub", "Tuna "
+ "Sub", "Vegetable Sub"};//creating options for user to choose from
choice= (String)JOptionPane.showInputDialog(null, "What type of"
+ " subsandwich do you like? \n \"I like...\"",
"Subsandwich",
JOptionPane.QUESTION_MESSAGE,
iconpizza,
possibilities,
"Chicken Sub");
Object[] possibilities1= {"Sprite", "Coke", "7Up", "Pepsi"};
choice2= (String)JOptionPane.showInputDialog(null, "What type of"
+ " drink do you prefer to have? \n \"I prefer..\"",
"Drink",
JOptionPane.QUESTION_MESSAGE,
icondrink,
possibilities1,
"Sprite");
JOptionPane.showInputDialog(null, "Please state what you would like"
+ " to have additionally",
"Additional Request",
JOptionPane.INFORMATION_MESSAGE,
iconcat1,
null,
"");
order= String.format("Your order: \n " + choice + " \n" + choice2 +
" \n Please enjoy!",
"Order for: " + name + " " ,
JOptionPane.PLAIN_MESSAGE,
iconcat7,
null);
JOptionPane.showMessageDialog(null, order);
}
如果可以,请帮助我。
答案 0 :(得分:3)
您正在调用的showInputDialog
方法返回Object
,但您将返回的值分配给String
变量。错误消息告诉您Java不会隐式为您进行此转换,您必须明确地执行此操作。你已经在代码的后面几行了。
choice = (String)JOptionPane.showInputDialog(null, "What type of"
+ " subsandwich do you like? \n \"I like...\"",
"Subsandwich",
JOptionPane.QUESTION_MESSAGE,
iconpizza,
possibilities,
"Chicken Sub");