"Rita" om GUI medans det körs? (I Java)

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Sep 2003

"Rita" om GUI medans det körs? (I Java)

Jag har en uppgift som går ut på att jag ska göra ett spel.

Att rita upp spelplanen med en massa objekt går utan större problem. Jag har en for loop som kör ut antalet objekt i en JPanel beroende på hur många spelaren väljer att det ska vara i en metod som jag kallar för nytt().

Men här är problemet nu, jag har en knapp där man ska kunna starta ett nytt spel och försöker jag anropa nytt() då så får jag dubbelt så många objekt i fönstret. Jag har testat att köra minJPanel.removeAll() innan jag anropar nytt() igen men då går det inte att klicka på något objekt alls utan den typ fryser helt.
Någon som vet hur jag gör för att "rita" upp hela JPanelen/hela GUI:t igen medans det körs?

| Opteron 165 @ 2810MHz | DFI Lanparty UT NF4 Ultra-D | 2x1024MB TwinMOS PC3200 DDR |
| Sapphire Radeon X800GTO² @ 16p, 533/627 | 3DMark05: XXXXp | 3DMark01: XXXXXp |
| 150GB Raptor + 120GB + 2x200GB + 2x250GB + 2x320GB + 500GB | Totalt: 2,31TB |

Trädvy Permalänk
Medlem
Plats
Falun
Registrerad
Dec 2003
Citat:

Ursprungligen inskrivet av ChRiiLLe
Jag har en uppgift som går ut på att jag ska göra ett spel.

Att rita upp spelplanen med en massa objekt går utan större problem. Jag har en for loop som kör ut antalet objekt i en JPanel beroende på hur många spelaren väljer att det ska vara i en metod som jag kallar för nytt().

Men här är problemet nu, jag har en knapp där man ska kunna starta ett nytt spel och försöker jag anropa nytt() då så får jag dubbelt så många objekt i fönstret. Jag har testat att köra minJPanel.removeAll() innan jag anropar nytt() igen men då går det inte att klicka på något objekt alls utan den typ fryser helt.
Någon som vet hur jag gör för att "rita" upp hela JPanelen/hela GUI:t igen medans det körs?

Mina Java-kunskaper börjar förtvina... Men måste du inte göra en minJPanel.removeAll();
minJPanel.revalidate();
minJPanel.repaint();

för att ta bort objekten?

...Eller så kanske det bara var revalidate()...

ηλί, ηλί, λαμά σαβαχθανί!?

Trädvy Permalänk
Medlem
Registrerad
Jul 2004

Kan du visa kod. Hur fungerar text nytt()? Kör det minJPanel.add(x)?

Då borde du rimligtvis behöva köra text removeAll()