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