JLabel不会消失

时间:2014-12-24 11:56:00

标签: java swing icons label

我有一个面板,其中构造函数我创建了object和imagelabel。它看起来像这样:

zloczyncy.get(0).setX(750);
zloczyncy.get(0).setY(312);
zloczyncy.get(0).Rysuj(zloczyncy.get(0).getX(),zloczyncy.get(0).getY(),zloczyncy.get(0).getImage(),this,2);

Rysuj方法:

void Rysuj(int picturex, int picturey, ImageIcon image, JLayeredPane panel, int w) {
    imagelabel=new JLabel(image);
    imagelabel.setBounds(picturex,picturey, image.getIconWidth(), image.getIconHeight());
    panel.add(imagelabel,w,0);
    panel.repaint();
}

然后在其他类中,在run方法中我想删除或只是让它消失,但没有任何反应。

public void run() {          
    try {
        Mapa panel = new Mapa(frame);
            for(Zloczynca z:zloczyncy){         
                if((this.getX()<=z.getX()+30)&&(this.getX()>=z.getX())){                              
                    if(this.getSzybkosc()>z.getSzybkosc()){              
                        while((z.getZycie()>0)||(this.getZycie()>0)){
                            System.out.println("cios");
                            int ciosB=(this.getInteligencja()*this.getUmiejetnosciWalki())-z.getWytrzymalosc();
                            z.setZycie(z.getZycie() -ciosB);
                            int ciosZ=(z.getInteligencja()*z.getUmiejetnosciWalki())-this.getWytrzymalosc();
                            this.setZycie(this.getZycie() -ciosZ);
                            if(z.getZycie()<=0){
                                System.out.println("dead zloczynca1");
                                z.imagelabel.setIcon(null);
                                panel.repaint();
                                System.out.println("dead zloczynca1/2");
                                break;
                            }
                            if(this.getZycie()<=0){
                                System.out.println("dead bohater");
                                this.imagelabel.setBounds(0,0, image.getIconWidth(), image.getIconHeight()); 
                                break;
                            }
                        }
                    }
                }
            }

我已经尝试z.imagelabel.setIcon(null); panel.remove(z.imagelabel);,即使我试图改变界限但没有任何作用,比如这个标签是不可触碰的或其他东西。当我在面板构造函数中删除它时,它的工作原理。它看起来并不复杂,但我不知道是什么问题。

0 个答案:

没有答案