【问题标题】:Why does this code gives me the error "imageicon cannot be converted to int"?为什么这段代码会给我错误“imageicon 无法转换为 int”?
【发布时间】:2018-11-20 21:29:37
【问题描述】:

我在向消息屏幕添加图片时遇到问题。如果我不在我的框中使用文本字段,则该代码有效,但它也适用于文本字段并且没有图片...我真的不明白为什么会出现此错误:

不兼容的类型:ImageIcon 无法转换为 int

这是我的代码:

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

public class Input{    

    public static String[] geefInputNamen(){    
        JTextField veld1 = new JTextField(); 
        JTextField veld2 = new JTextField();

        Object[] velden = {  
            "Speler 1:", veld1,
            "Speler 2:", veld2
        };

        ImageIcon icon = new ImageIcon("nbalivemobile.png");

        JOptionPane.showConfirmDialog(null, velden, "Spelers vergelijken", 
                                   JOptionPane.OK_CANCEL_OPTION, icon);


        String[] namen = new String[2];

        namen[0] = veld1.getText(); 
        namen[1] = veld2.getText();

        return namen;
    }   
}

我是新来的,所以我希望这是正确的。 :)

【问题讨论】:

  • 哪一行会产生这个错误?
  • 第 18 行产生错误。
  • 我不知道那是哪一个......
  • 以joptionpane开头,但问题已经在下面回答了
  • @PieterDeSmet, but the question is already answered below - 然后不要忘记点击复选标记“接受”答案,这样人们就知道问题已经解决了。

标签: java swing compiler-errors imageicon


【解决方案1】:

如果您想将Icon 传递给showConfirmDialog,则需要use the 6 argument overload

JOptionPane.showConfirmDialog(
    null,
    velden,
    "Spelers vergelijken",
    JOptionPane.OK_CANCEL_OPTION,
    JOptionPane.PLAIN_MESSAGE, // Add this argument
    icon);

我在此示例中使用了 PLAIN_MESSAGE,但您可以使用 API 文档中指定的 ERROR_MESSAGEINFORMATION_MESSAGEWARNING_MESSAGEQUESTION_MESSAGEPLAIN_MESSAGE 中的任何一个。

【讨论】:

    【解决方案2】:

    您在调用 JOptionPane.showConfirmDialog 时缺少一个参数,messageType 是一个 int,介于 optionType 和 icon 之间。请参阅JOptionPane.showConfirmDialog 的文档

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-08
      相关资源
      最近更新 更多