不兼容的类型 JOptionPane java 字符串到 png

Incompatible Types JOptionPane java string to png

好吧,我这里有一个小问题,我想将图像添加到 JOptionPane 但我不能,因为我正在将它转换为字符串!我不知道怎么解决!帮助!这是代码:

import javax.swing.JOptionPane;
import javax.swing.ImageIcon;
public class TextBox {
        
        ImageIcon icon0 = new ImageIcon("Picture2_2.png");
        String user_input = JOptionPane.showInputDialog(null, "Please enter a card number!", "¡Tu puedes!", JOptionPane.INFORMATION_MESSAGE,icon0,null,"");
   
    public static void main (String [] args)
        
        {
           
            int g = -1;
            while (g<0)
            {
                
                TextBox n = new TextBox();
                
                if(n.user_input.length() > 0 )
                        {
                            numbersreader t= new numbersreader();
                            t.checkLuhn (n.user_input);
                              g++;
                                                    
                        }else
                            {
                            ImageIcon icon1 = new ImageIcon("Picture2_2.png");
                            JOptionPane.showInputDialog(null, "Please enter a card number!", "¡Ya valio!", JOptionPane.INFORMATION_MESSAGE,icon1, null, "");
                            }
            }
        }


}

如果不是因为这个代码确实有效,下面是一个有效的代码版本,但我真的想把那张图片放在那个 JOptionPane 中,一定有办法!

import javax.swing.JOptionPane;
import javax.swing.ImageIcon;

public class TextBox {
        
        
        String user_input = JOptionPane.showInputDialog(null, "Please enter a card number!", "¡Tu puedes!", JOptionPane.INFORMATION_MESSAGE);
   
    public static void main (String [] args)
        
        {
           
            int g = -1;
            while (g<0)
            {
                
                TextBox n = new TextBox();
                
                if(n.user_input.length() > 0 )
                        {
                            numbersreader t= new numbersreader();
                            t.checkLuhn (n.user_input);
                              g++;
                                                    
                        }else
                            {
                            ImageIcon icon1 = new ImageIcon("Picture2_2.png");
                            JOptionPane.showInputDialog(null, "Please enter a card number!", "¡Ya valio!", JOptionPane.INFORMATION_MESSAGE,icon1, null, "");
                            }
            }
        }


}

当我尝试编译您的代码时,编译器告诉我“错误:类型不兼容:对象无法转换为字符串”。

那是因为 JOptionPane.showInputDialog() return 是一些对象,但是在第 6 行你试图将 return 值分配给 String 变量。

将第 6 行更改为

String user_input = (String) JOptionPane.showInputDialog(null, "Please enter a card number!", "¡Tu puedes!", JOptionPane.INFORMATION_MESSAGE,icon0,null,"");

(并提供一个 png 文件“Picture2_2.png”和一个 class numbersreader 方法 void checkLuhn(String s) {})我可以编译并 运行 你的代码.