这个荒山打猎的游戏,我把野猪标签写出来后,为什么获得窗体宽度的时间总是延时,而且左上角还会有一个野猪图标。
private class PigLabel extends JLabel implements Runnable {// 代表野猪的标签控件类
/**
*
*/
private static final long serialVersionUID = 1L;
private ImageIcon pigIcon = new ImageIcon(MainFrame.class.getResource("pig.gif"));
private int y = 260;// 该角色的纵坐标
private Thread t;
private int score = 10;// 该角色对应的分数
private Container parent;// 控件的父容器类
private int sleepTime = (int) (Math.random() * 300 + 30);
private PigLabel() {
super();
setIcon(pigIcon);
t = new Thread(this);
t.start();
}
public void run() {
parent = null;
int width = 0;
while(width <= 0 || parent == null) {
if(parent == null) {
parent = getParent();
}else {
width = parent.getWidth();
}
}
for (int i = 0; i < width && parent != null; i += 8) {
setLocation(i, y);
try {
Thread.sleep(sleepTime);
} catch (InterruptedException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
}
}
这是野猪标签的代码