tegn nye linjer på jpanel igennem mouselistener

Tags:    java graphics jpanel

Prøver at få mit java program til at tegne en given linje ved mousedragged (når musen trækkes), men kan kun få den til at tegne en streg når programmet startes. har prøvet en masse forskellige ting, men kan ikke få det til at virke. Her er min kode indtil videre:

http://pastebin.com/Y6bwUkFn


min mouseDragged funktion virker, men kan ikke få tegnet en ny ligner efter programmet er startet.. ved ikke helt hvordan jeg skal gøre det



Indlæg senest redigeret d. 21.04.2013 23:23 af Bruger #15621
6 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
Har du fået det til at lykkeds endnu ?..

Hvis du ikke har, så forsøg at lav en Arrayliste af Linjer, hvor du så lægger en ny linje til for hver gang musen bliver trækket.

I din metode du kalder for paintComponents, løber du så igennem ArrayListen, og tegner dem med metoden graphics.drawLine.





Vil den så ikke bare stoppe med at tegne linjer når den har nået enden af arraylisten og lade være med at tegne flere derefter ?



Jo for hver gang din metode bliver kaldt, pointen er at denne metode vil blive kaldt hver gang du trækker musen (hvis du husker at kalde repaint metoden) og hver gang du flytter på vinduet.



har prøvet at gøre følgende:

Fold kodeboks ind/udJava kode 



Den laver bare linjer fra punkt 0,0 til et andet punkt igen og igen.. kalder ikke på min paintComponent metode, da jeg ikke helt ved hvordan jeg skal gøre det.. man skal jo sende Graphics med som attribut og hvis jeg skal sende det med over kræver det at jeg initialiserer Graphics, som vil have en hel masse inbyggede metoder (som jeg ikke vil have stående i min kode da der er virkelig mange).. men programmet tegner da stadig linjer selvom jeg ikke kalder metoden paintComponent.. er lidt forvirret omkring Graphics



Grunden til at metoden paintComponent bliver kaldt er fordi, at den automatisk bliver kaldt når repaint metoden bliver kaldt.


Du ville sagtens kunne skippe følgende linjers kode, og få den samme effekt:

Fold kodeboks ind/udJava kode 




Ja det kan jeg godt se.. har fjernet det.. nu har jeg så:

Fold kodeboks ind/udJava kode 



Men den tegner stadig en linje i venstre højre hjørne når programmet starter helt uden at jeg har rørt det. Og når jeg trækker musen tegner den en streg tæt på den linje i hjørnet (næsten oveni)


kan stadig ikke gennemskue hvad jeg gør galt :/



Indlæg senest redigeret d. 22.04.2013 19:43 af Bruger #15621
t