【问题标题】:ImageIcon can´t change default JOptionPane iconImageIcon 无法更改默认的 JOptionPane 图标
【发布时间】:2018-03-22 08:04:13
【问题描述】:

我最近在添加图标时出错,我想用图像替换默认的 JOptionPane 图标,但我无法更改默认图标

这里是代码

import javax.swing.*;
public class JOptionPaneIcon
{
    public static void main (String []args)
    {
    String c;
    Double z,Dollars;
    try
    {
        ImageIcon icon = new ImageIcon("convert-units.jpg");
        c = JOptionPane.showInputDialog(null,"Insert  the amount of mexican pesos",icon);
        z = Double.parseDouble (c);//se captura la cantidad de kilos 
        Dollars= z /18.42 ; //la cantidad de kilos se multiplican por mil para hacerlos gramos 
        JOptionPane.showMessageDialog(null,"You got: " + Dollars + " dollars");
    }
    catch (Exception e)
    {
        JOptionPane.showMessageDialog (null,"Program got an error","Error", JOptionPane.ERROR_MESSAGE);
    }
   } 
}

【问题讨论】:

    标签: java swing joptionpane imageicon


    【解决方案1】:

    您需要阅读JavaDocs for JOptionPane.showInputDialog(Component, Object, Object) 并了解每个参数的实际含义

    我认为你想做一些更像...的事情

    JOptionPane.showInputDialog(null, "Insert  the amount of mexican pesos", null, JOptionPane.INFORMATION_MESSAGE, icon, null, null);
    

    对我来说,产生了

    您可能还会发现ImageIcon 没有加载图像。 ImageIcon(String) 期望指定的图像位于文件系统上,在您的情况下,位于工作目录中。所以你可能想检查一下。

    我个人建议改用ImageIO.read,因为如果由于某种原因无法加载图像,它会生成IOException,而不是静默失败

    更多详情请见Reading/Loading an Image

    【讨论】:

    • @UsagiMiyamoto 最好还是使用ImageIO.read - 因为它提供了图片未加载的原因
    • 它有效,但我想存储 JOptionPane.showInputDialog(null,"Insert the amount of mexican pesos",null,JOptionPane.INFORMATION_MESSAGE, icon, null, null);在字符串变量中
    • @IsraelSandoval 阅读 JavaDocs,这就是它们存在的原因 “返回:用户的输入,或 null 表示用户取消了输入”
    • c = (String)JOptionPane.showInputDialog(null,"Inserte la cantidad de Kilos;","Kilos a gramos",JOptionPane.INFORMATION_MESSAGE,icono,null,null);
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-30
    • 1970-01-01
    • 2014-11-05
    • 2012-05-07
    相关资源
    最近更新 更多