【问题标题】:java JButton setIcon won't workjava JButton setIcon 不起作用
【发布时间】:2014-11-16 05:38:16
【问题描述】:

我有一个二维 JButton 数组。我还有一个与类文件位于同一目录中的图像。此图像称为“Ship.bmp”。下面的方法不会给按钮设置这个图片,为什么?

public void placeShip(int x, int y) {
    buttons[x][y].setEnabled(false);
    ImageIcon icon = null;
    java.net.URL imgURL = getClass().getResource("Ship.bmp");
    if (imgURL != null) {
        icon = new ImageIcon(imgURL);
    } else {
        System.err.println("Couldn't find file: Ship.bmp");
        icon = null;
    }
    System.out.println(imgURL);
    buttons[x+1][y+1].setIcon(icon);
}

附:我没有使用 Eclipse。

提前致谢

【问题讨论】:

  • 有没有报错?
  • 你怎么知道x+1y+1 没有越界?如果它们没问题,那么你怎么知道按钮大小足以包含图标(即大小是连贯的)
  • 你的代码运行了吗?你得到什么错误?代码在运行时做了什么?你想让它做什么?您必须确保解决所有这些问题,我们才能为您提供帮助……否则,我们甚至不知道您在问什么。
  • 如果没有看到您的其他代码,我无法确定,但我敢打赌,在调用此方法后您需要重新绘制。
  • 来自How to Use Icons 教程,“Swing 提供了一个特别有用的 Icon 接口实现:ImageIcon,它从 GIF、JPEG 或 PNG 图像绘制图标。”。从内存来看,不支持 bmp,您必须改用 ImageIO api

标签: java jbutton


【解决方案1】:

根据Java Icon tutorial,ImageIcon 仅支持 GIF、JPEG 和 PNG 图像格式。您可能需要更改图像的格式,或者先使用 ImageIO 类来加载 imgae。

【讨论】:

    猜你喜欢
    • 2013-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-27
    • 2011-06-25
    • 1970-01-01
    • 2016-02-27
    • 2013-08-28
    相关资源
    最近更新 更多