【发布时间】:2010-11-28 20:31:52
【问题描述】:
我有一个名为 'AmountWrongGuessed' 的值,它给出了用户在猜测一个单词时的错误猜测数量。
每次在数组列表中找不到单词时,AmountWrongGuessed 都会变为 ++。 (用 println 测试过,它工作正常)
现在的问题是,每次 AmountWrongGuessed 上升 1 时,它应该显示一个 ImageIcon。
但实际上它始终显示最后一个图像图标,并跳过其他图标。 p>
我没有使用布局管理器(它设置为 null,如果这对整个图片 setLayout = null 有任何影响)
在初始化这个游戏时,amountwrongguessed 默认为 0,但它也不显示第一个图像图标。 (我之前使用不同的标签将每个图标添加到同一位置,但后来我遇到了问题,只显示了第一张图片,没有任何改变)。
public HrView(Hrgame hg) {
this.hg = hg;
CreateComponents();
SetLayoutComponents();
UpdateComponents();
AddListeners();
}
图像的创建:
private void CreateComponents() {
hang0 = new ImageIcon("hang0.gif");
lblHang = new JLabel(hang0);
lblHang.setLocation(60, -10);
lblHang.setSize(200, 200);
hang1 = new ImageIcon("hang1.gif");
lblHang = new JLabel(hang1);
lblHang.setLocation(60, -10);
lblHang.setSize(200, 200);
hang2 = new ImageIcon("hang2.gif");
lblHang = new JLabel(hang2);
lblHang.setLocation(60, -10);
lblHang.setSize(200, 200);
}
private void AddListeners()
{
btnCheck.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
hg.Input(tfToGuessInput.getText().toLowerCase());
Pictures();
lblHang.updateUI();
}
});
}
private void Pictures()
{
//works, does increment
System.out.println(hg.getAmountWrongGuessed());
if (hg.getAmountWrongGuessed() == 0) {
add(lblHang);
}
if (hg.getAmountWrongGuessed() == 1) {
add(lblHang);
}
if (hg.getAmountWrongGuessed() == 2) {
add(lblHang);
}
}
【问题讨论】:
标签: java