Methodeninterne Variabeln

Status
Nicht offen für weitere Antworten.

Illuminatus0301

Aktives Mitglied
Hi,
ich hab ein Problem:
Ich hab ein Bild, das ich in einem Label anzeige und möchte ein 32*32 Pixel Mantel um den Mauszeigen erzeugen. Dafür hab ich eine Methode:
Code:
             ...
             CircuitLabel.setIcon(new ImageIcon(addBorder(CircuitImage));
             ...



public BufferedImage addBorder(BufferedImage Source) {
		Count = 0;
		while (Count < 32) {
			Source.setRGB(MouseX + Count - 16, MouseY - 24             , new Color(255, 0, 0).getRGB());
			Source.setRGB(MouseX + Count - 16, MouseY + 8              , new Color(255, 0, 0).getRGB());
			Source.setRGB(MouseX - 16             , MouseY + Count - 24, new Color(255, 0, 0).getRGB());
			Source.setRGB(MouseX + 16            , MouseY + Count - 24, new Color(255, 0, 0).getRGB());
			Count++;
		}
		return Source;
	}

Im Prinzip klappt es auch, aber die alten Mäntel verschwinden nicht. Dad Grundbild (CircuitImage) wird heir nicht verändert, und das Zwischenbil (Source) wird nach jeden Prozedurende doch wieder gelöscht, oder?
 

Reeny

Aktives Mitglied
Das sogenannte Zwischenbild ist eine Referenz, die du der Funktion addBorder() übergibst. Die Änderungen, wie zum Beispiel
Code:
Source.setRGB(MouseX + Count - 16, MouseY - 24             , new Color(255, 0, 0).getRGB());
werden direkt an diesem Objekt angewendet.

Es kommt jetzt drauf an, wo du das CircuitImage in der Zeile
Code:
CircuitLabel.setIcon(new ImageIcon(addBorder(CircuitImage));
her hast. Wahrscheinlich ist es immer das selbe ...


PS: Variablen klein schreiben. Das geübte Programmierer-Auge bleibt sonst überall hängen und der Code ist schwerer zu verstehen ... :noe:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen

Ähnliche Java Themen

Neue Themen


Oben