Permalänk

Problem i java

Håller på att gör ett program där det finns två färger(färg1, färg2), och när jag klickar på t ex. "x" så ska färg1 = färg2 och färg2 = färg1. Men såklart kan man inte skriva så för då blir ju först färg1 = färg2, sen blir färg2 = färg1 = färg2.

Tänkte att man måste ta ut RGB koden från färg1, lägga den i en färgTemp, färg2 = färg1, och sen lägga in färgTemp i färg2, men tydligen så gick inte det så bra.

Någon som vet något lätt sätt man kan fixa det på?

(Hoppas det inte blev för stökigt ^^)

Visa signatur

Stationär: [Intel i5 750 2,66Ghz]-[XFX Radeon HD5770 1GB DDR5]-[ASRock P55 Extreme]-[Corsair 2x2GB DDR3]-[WD Black 640GB]-[Corsair TX 650W]
Bärbar:  MacBook Pro 13" 2011 - Unboxing - Galleri
TV-spel: Playstation 3 40GB, Xbox 360 Elite, Wii, Gamecube, N64, NES

Permalänk
Medlem

färg1 = enFärg;
färg2 = enAnnanFärg;

blabla...

tempfärg = färg1;
färg1 = färg2;
färg2 = tempfärg;

Tänk på att det som ändras när du skriver "färg1 = färg2" är bara vilket objekt färg1 pekar på, inte själva objektet, därför behöver du inte bry dig om att mixtra med RGB-koderna.

EDIT: För att förtydliga lite var du gjorde fel också, även om vi skippar RGB-koder.

Citat:

Tänkte att man måste ta ut RGB koden från färg1, lägga den i en färgTemp,

färgTemp = färg1;

Citat:

färg2 = färg1,

färg2 = färg1 (=färgTemp, som du satte raden innan)

Nu pekar alla variabler på samma objekt.

Citat:

och sen lägga in färgTemp i färg2

färg2 = färgTemp;

Den raden kommer inte göra någon skillnad alls eftersom färgTemp = färg1 = färg2 redan innan. Annars hade det säkert ocdkså fungerat

Permalänk
Skrivet av Goose7:

färg1 = enFärg;
färg2 = enAnnanFärg;

blabla...

tempfärg = färg1;
färg1 = färg2;
färg2 = tempfärg;

Tänk på att det som ändras när du skriver "färg1 = färg2" är bara vilket objekt färg1 pekar på, inte själva objektet, därför behöver du inte bry dig om att mixtra med RGB-koderna.

EDIT: För att förtydliga lite var du gjorde fel också, även om vi skippar RGB-koder.

färgTemp = färg1;

färg2 = färg1 (=färgTemp, som du satte raden innan)

Nu pekar alla variabler på samma objekt.

färg2 = färgTemp;

Den raden kommer inte göra någon skillnad alls eftersom färgTemp = färg1 = färg2 redan innan. Annars hade det säkert ocdkså fungerat

Tack så jätte mycket. Hade gjort ungefär så först, men jag hade satt färgTemp på fel plats

Edit: Har ett till problem med färgerna.

Går det att få ut RGB koderna från en färg? Typ färg2.get...

Visa signatur

Stationär: [Intel i5 750 2,66Ghz]-[XFX Radeon HD5770 1GB DDR5]-[ASRock P55 Extreme]-[Corsair 2x2GB DDR3]-[WD Black 640GB]-[Corsair TX 650W]
Bärbar:  MacBook Pro 13" 2011 - Unboxing - Galleri
TV-spel: Playstation 3 40GB, Xbox 360 Elite, Wii, Gamecube, N64, NES

Permalänk
Medlem
Skrivet av Alexandberg:

Tack så jätte mycket. Hade gjort ungefär så först, men jag hade satt färgTemp på fel plats

Edit: Har ett till problem med färgerna.

Går det att få ut RGB koderna från en färg? Typ färg2.get...

http://download.oracle.com/javase/1.4.2/docs/api/java/awt/Col...

Antar att det är klassen du använder. Verkar finnas getRed(), getGreen(), getBlue(), jag antar att det är vad du är ute efter.

Permalänk
Skrivet av Goose7:

http://download.oracle.com/javase/1.4.2/docs/api/java/awt/Col...

Antar att det är klassen du använder. Verkar finnas getRed(), getGreen(), getBlue(), jag antar att det är vad du är ute efter.

Tack igen

Visa signatur

Stationär: [Intel i5 750 2,66Ghz]-[XFX Radeon HD5770 1GB DDR5]-[ASRock P55 Extreme]-[Corsair 2x2GB DDR3]-[WD Black 640GB]-[Corsair TX 650W]
Bärbar:  MacBook Pro 13" 2011 - Unboxing - Galleri
TV-spel: Playstation 3 40GB, Xbox 360 Elite, Wii, Gamecube, N64, NES

Permalänk
Hedersmedlem
Skrivet av Goose7:

färg1 = enFärg;
färg2 = enAnnanFärg;

blabla...

tempfärg = färg1;
färg1 = färg2;
färg2 = tempfärg;

...

En litet minnesknep för en swap är annars

c = a
a = b
b = c

där man ser att det är cab(=taxi) till vänster och vanligt abc till höger, c är tempvariabeln.
Hjälpte mig minnas det i början när jag lärde mig den iaf

Permalänk
Skrivet av Shimonu:

En litet minnesknep för en swap är annars

c = a
a = b
b = c

där man ser att det är cab(=taxi) till vänster och vanligt abc till höger, c är tempvariabeln.
Hjälpte mig minnas det i början när jag lärde mig den iaf

Tack, det ska jag komma ihåg

Visa signatur

Stationär: [Intel i5 750 2,66Ghz]-[XFX Radeon HD5770 1GB DDR5]-[ASRock P55 Extreme]-[Corsair 2x2GB DDR3]-[WD Black 640GB]-[Corsair TX 650W]
Bärbar:  MacBook Pro 13" 2011 - Unboxing - Galleri
TV-spel: Playstation 3 40GB, Xbox 360 Elite, Wii, Gamecube, N64, NES