【发布时间】:2012-10-04 00:28:44
【问题描述】:
我在 ImageIcon 数组中声明了 30 个 ImageIcon。我已经使用 FOR 循环声明了它们。唯一的问题是,当我尝试将 ImageIcon 添加到 JLabel 并在屏幕上显示 JPanel 时,它不起作用。这是我的代码:
package screens;
import javax.swing.*;
import java.awt.*;
public class gameScreen extends JPanel {
private static final long serialVersionUID = 1L;
// -------------VARIABLES---------------//
Image wallpaper = (Image)Toolkit.getDefaultToolkit().getImage(getClass().getResource("images/wallpaper.jpg"));
ImageIcon[] teamsImg = new ImageIcon[30];
public gameScreen() {
for(int i = 0;i>30;i++){
teamsImg[i] = new ImageIcon(Toolkit.getDefaultToolkit().getImage(
getClass().getResource("images/img.png")));
}
JLabel label = new JLabel(teamsImg[27]);
add(label);
}
// -------------PAINT FUNCTION----------//
public void paintComponent(Graphics g) {
g.drawImage(wallpaper,0,0,null);
}
}
【问题讨论】:
-
请,请,请,请始终致电
super.paintXxx,除非您有非常、非常、非常好的理由,否则您不应忽视绘画方法的许多重要工作。 ps 我怀疑这是你的问题,但这让我很恼火:P -
“它不起作用”到底是什么意思 - 您是否收到错误消息,或者只是什么都不可见?图像存在吗?他们真的加载了吗?你为什么要加载相同的图像 30 次,然后只使用一次? 'gameScreen' 实例的大小是否非零?哦,类名应该以大写字母开头。
-
什么都看不见。并且图像未加载。我使用 if 语句检查
标签: java swing jlabel imageicon