29. april 2003 - 22:19
Der er
3 kommentarer og 1 løsning
Hvad er der galt med Graphics g
Hvad er der galt med Graphics g Nå class GrafiskVindue er færdig med at tegne bliver Vinduet blankt. package gnist_indlob; import java.util.*; import java.awt.*; import javax.swing.*; public class GrafiskVindue extends Frame { int x; int y; public void tegnerWin(Vector ind) { for (int i=0;i<ind.size();i++) { indlob p; p = (indlob) ind.elementAt(i); x = p.x_grap()*5; y = p.y_grap()*5; tegn(getGraphics()); System.out.println(""+p.x_grap()+" "+p.y_grap()); // test af x y } } public void tegn(Graphics g) { g.drawLine(200,200,200+x,200+y); } }
Annonceindlæg tema
Forsvar & beredskab
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
29. april 2003 - 22:34
#1
Mine umiddelbare forslag til forbedring er: * omdøb tegn til paint * i.s.f. at kalde tegn/paint explicit så kald repaint * lav en event handler så man kan lukke framen
29. april 2003 - 23:01
#2
Jeg har prøvet dit forslag og nu tegner class ok, men det er kun det sidste FOR løkken henter ud af vector package gnist_indlob; import java.util.*; import java.awt.*; import javax.swing.*; public class GrafiskVindue extends Frame { int x; int y; public void tegnerWin(Vector ind) { for (int i=0;i<ind.size();i++) { indlob p; p = (indlob) ind.elementAt(i); x = p.x_grap()*5; y = p.y_grap()*5; repaint(); System.out.println(""+p.x_grap()+" "+p.y_grap()); // test af x y } } public void paint(Graphics g) { g.drawLine(200,200,200+x,200+y); } } Christian
29. april 2003 - 23:04
#3
Ja. Fordi x og y overskrives ved hvert gennemløb af for løkken. Muligvis skal tegnerWin bare gemme Vector og kalde repaint og så skal paint have for løkken og drawLine inden i for løkken.
17. december 2012 - 22:01
#4
tak
Kurser inden for grundlæggende programmering