自定义图标JOptionPane.showInputDialog

时间:2015-11-27 16:50:50

标签: java swing icons

我正在尝试在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,"");

我该怎么办?

3 个答案:

答案 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,"");