Array von JLabels PropertyChange

Tithilion

Mitglied
wie der Titel schon sagt habe ich ein Array von 20JLabels jedes JLabel bekommt ein PropertyChangeListener, das funktioniert auch soweit... nun ändert sich das JLabel und gibt auch aus, das es sich ändert ,genau so wie ich will.

Aber darauf soll sich nun das Bild was auf dem JLabel liegt per setIcon() ändern doch ich bekomme nicht raus welches JLabel sich da überhaupt geändert hat...


hier mein code:

Code:
for(int i=0;i<20;i++){
            aufGrund[i] = new JLabel();
            aufGrund[i].setTransferHandler(new TransferHandler("text"));
           aufGrund[i].addPropertyChangeListener(new PropertyChangeListener() {

            public void propertyChange(PropertyChangeEvent event) {
                if(event.getOldValue()!=null){
	    if(!event.getOldValue().equals(event.getNewValue())){
                if(!event.getNewValue().toString().startsWith("uhrenvorschau.IconPainter")){
                aufGrund[i].setIcon(new IconPainter(getImage(event.getNewValue().toString()),-11,0,0,0,0)); //makierung
            }}}

            }});
 this.add(aufGrund[i]);}


makierung <-- hier ist mein problem (i) geht natürlich nicht, da i hier nicht zu erreichen ist, aber this.setIcon würde auch nicht funktionieren, da this ja der Listener ist und nicht das JLabel was unter dem Listener steckt. Mit aufGrund[0].setIcon dort funktioniert es einwand frei, doch ich will ja immer das passende JLabel bemalen und nicht das 1ste...

hoffe ihr wisst schnellen rat.
 
habs raus bekommen, hier nochmal der code mit dem funktionierendem beispeil


Code:
 for(int i=0;i<20;i++){
            aufGrund[i] = new JLabel();
            aufGrund[i].setTransferHandler(new TransferHandler("text"));
           aufGrund[i].addPropertyChangeListener(new PropertyChangeListener() {

            public void propertyChange(PropertyChangeEvent event) {
                if(event.getOldValue()!=null){
	    if(!event.getOldValue().equals(event.getNewValue())){
                if(!event.getNewValue().toString().startsWith("uhrenvorschau.IconPainter")){
                    for(int ix=0;ix<20;ix++){
                    if(aufGrund[ix].getText().equals(event.getNewValue().toString())){
                     aufGrund[ix].setIcon(new IconPainter(getImage(event.getNewValue().toString()),-11,0,0,0,0));
                   
                    }}
            }}}


            }});
 this.add(aufGrund[i]);}
 

Neue Beiträge

Zurück