我正在尝试在JOptionPane.showMessageDialog
上添加自定义图标但我收到错误
public static String input (String message)
{
ImageIcon icon = new ImageIcon("alien.jpg");
String text = message;
return JOptionPane.showInputDialog(null,text,"Alien Pet Game",JOptionPane.INFORMATION_MESSAGE,icon,null,"");
}
这是我的错误:
error: incompatible types: Object cannot be converted to String return JOptionPane.showInputDialog(null,text,"Alien Pet Game",JOptionPane.INFORMATION_MESSAGE,icon,null,"");
我该怎么办?
答案 0 :(得分:1)
编辑:您可以选择将对象转换为字符串。
1-检查您的消息是否为空,并将return语句强制转换为字符串。
2-你可以调用toString()
3-String.valueOf() - 你可以避免toString()的null异常问题。
参考上面的项目:(Java: JTable change listener, "Object cannot be converted to string" error
return (String) JOptionPane.showInputDialog(null,text,"Alien Pet Game",JOptionPane.INFORMATION_MESSAGE,icon,null,"");
编辑方法:
public static void main(String[] args) {
input("Hi");
}
public static String input(String message){
ImageIcon icon = new ImageIcon("alien.jpg");
String text = message;
if(text != null)
return (String) JOptionPane.showInputDialog(null,text,"Alien Pet Game",JOptionPane.INFORMATION_MESSAGE,icon,null,"");
/* else
return Alternative*/
return null;
}
答案 1 :(得分:0)
您的方法将字符串变量作为参数,并且您尝试返回JOptionPane对象,只需将对象存储在字符串变量中
String s = JOptionPane.showInputDialog(message));
并返回该变量'
答案 2 :(得分:0)
您对图标的使用(可能)没有任何问题。错误涉及到showInputDialog的返回值,该返回值是一个对象,正在调用String。您需要做的就是将您的返回值转换为String:
return (String) JOptionPane.showInputDialog(null,text,"Alien Pet Game",JOptionPane.INFORMATION_MESSAGE,icon,null,"");