【问题标题】:Having difficulty add a custom icon to a JFrame难以将自定义图标添加到 JFrame
【发布时间】:2010-03-19 03:31:12
【问题描述】:

我一直在尝试更改框架中的图标。我几乎尝试了所有方法:

  • 图标为 16x16,大小合适....不起作用

  • 我尝试了 PNG、GIF 和 JPG 格式,它们都不起作用。

  • 尝试了不同的图标设置方式....不起作用。

  • 我尝试过相对(本地路径),例如“icon.gif”和绝对路径,例如"c:\work\java\icon.gif" ...不起作用

这是我的代码,看看你能不能弄明白 谢谢 奥利

    import javax.swing.*;
    public class androidDriver 
    {

        public static void main(String[] args) throws IOException 
        {
            JFrame f = new JFrame("Android Data Viewer");
            f.setResizable(false);
            f.setSize(300,300);
            f.setLocationRelativeTo(null);
            f.setVisible(true);
            f.setIconImage(new ImageIcon("androidIcon2.gif").getImage());
        }
    }

【问题讨论】:

  • 为我工作(如果我在IOException 之前添加java.io.。你是直接从命令行运行它,还是一些IDE gubbins?
  • 图片到底在哪里?您发布的代码将在与 run from 相同的目录中查找图像
  • 是的,图像、类和java文件都在同一个位置
  • 我已添加:文件 file = new File(directory1 +"\\androidIcon2.gif"); System.out.println(file.exists());并且 True 被打印出来意味着它知道文件在那里 (directory1 is user.dir) String directory1 = System.getProperty("user.dir");

标签: java swing icons jframe


【解决方案1】:

如果您将图像与类文件放在同一目录中,那么以下内容应该适合您:

        f.setIconImage(new ImageIcon(androidDriver.class.getResource("androidIcon2.gif")).getImage());

还建议设置图标图像之前你使框架可见

        f.setIconImage(new ImageIcon(androidDriver.class.getResource("androidIcon2.gif")).getImage());
        f.setVisible(true);

【讨论】:

  • 第一个解决方案在 androidDriver.main( androidDriver.java:24) Java 结果:1 尝试了第二个解决方案,但什么也没做
  • 这表明它找不到图像。你的类路径设置为什么?
【解决方案2】:

我怀疑您实际上可能必须等待使用 MediaTracker 加载图像。很可能图像仍在帧 setIconImage 引用它的点加载,所以它什么也不做。

【讨论】:

    【解决方案3】:

    您是否尝试过使用 Toolkit.getDefaultToolkit().getImage("androidIcon2.gif")

    还有另外两件事:

    1. 图片是否存在?您发布的代码将静默失败。

    2. 格式是否正确? (虽然我认为如果不是 Java 可以处理它)

    【讨论】:

    • 是的,它确实存在,添加了 file.exists() 并且打印出了 true 是的 - Java 文档说它需要是 16x16 并且是 GIF、JPG 或 PNG
    【解决方案4】:

    在源文件夹旁边创建一个单独的文件夹,然后将您的图像放在那里,然后使用 ImageIO 获取图像,如下所示:

    f.setIconImage(ImageIO.read(new File("res/androidIcon2.gif")));
    

    另外,如果这不起作用,请尝试将图像保存为 .png 而不是 .gif。

    【讨论】:

      猜你喜欢
      • 2018-03-19
      • 1970-01-01
      • 2020-09-11
      • 2019-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多