我正在尝试学习如何将图像添加到我的 JFrame。我在 GUI 方面已经足够了,但我根本无法理解为什么这不起作用。
我已经设置了数组,以便我可以制作多个图像,以防您想知道。
(1) 我的问题是 getClass().getResource("0.png"); 由于某种原因,这一直失败。当 main(S...) 去创建对象 GUIv1 时,它在 image[0].....0.png") 中失败;
不知道为什么,我正在使用 eclipse,并且图像就在我的班级所在的默认包中。有什么需要吗?
(2) 这里似乎也有问题,但这不是第一个异常的原因,我也很感激这个问题的答案。
(如果代码字体有误,我深表歉意,这是我第一次来这里)。
import java.awt.*;
import javax.swing.*;
public class GUIv1 extends JFrame{
private static int tilesnum = 2;
private static ImageIcon[] image = new ImageIcon[tilesnum + 2];
private static JLabel[] imagepanel = new JLabel[tilesnum + 2];
public GUIv1() {
setLayout(new FlowLayout());
image[0] = new ImageIcon(getClass().getResource("0.png")); //HERE (1)
image[1] = new ImageIcon(getClass().getResource("1.png"));
image[2] = new ImageIcon(getClass().getResource("2.png"));
image[3] = new ImageIcon(getClass().getResource("3.png"));
for(int i = 0; i < tilesnum + 2; i++) {
imagepanel[i] = new JLabel(image[i]);
add(image[i]); //HERE (2)
}
}
public static void main(String[] args) {
GUIv1 selectorframe = new GUIv1();
selectorframe.setTitle("MapEditor v2");
//JFrame mainframe = new JFrame("MapEditor v2");
selectorframe.pack();
selectorframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
selectorframe.setVisible(true);
}
}