SmaTheGreek Δημοσ. 7 Μαρτίου 2010 Δημοσ. 7 Μαρτίου 2010 Ξεκινώντας... Φτιάχνω μία μικρή εφαρμογή στη java Έχω φτιάξει ένα μικρό user interface με το swing και αυτό που θέλω είναι να ζωγραφίζω κύκλους κλικάροντας Ο κώδικας που κρατά τα κέντρα των κύκλων είναι ο ακόλουθος public void AddVertex(int x, int y){ Vertices=new Point[Vertices.length+1]; Vertices[Vertices.length-1]=new Point(x,y); }: (όπου Vertices public πίνακας τύπου Point που κρατά τα κέντρα των κύκλων) Η συνάρτηση AddVertex καλείτε από την: public void mouseClicked(MouseEvent e) { shape.AddVertex(e.getX(),e.getY()); if(shape.Vertices.length-2>=0) System.out.println(shape.Vertices[shape.Vertices.length-2]); } Η μέθοδος mouseClicked υλοποιείται από τη κλάση μου και ανήκει στο Interface MouseListener Τελικώς ζωγραφίζω τους κύκλους ως εξής... for(int i=0;i<shape.Vertices.length;i++){ comp2D.setColor(Color.BLUE); if(shape.Vertices!=null) comp2D.drawArc(shape.Vertices.x,shape.Vertices.y,10,10,0,360); } Ο παραπάνω κώδικας με το for loop υπάρχει εντός της paintComponent(Graphics comp) η οποία υλοποιείται από τη κλάση μου Και εδώ είναι το πρόβλημα... Αν από το τελευταίο κομμάτι κώδικα αφαιρέσω τη γραμμή if(shape.Vertices!=null) παίρνω μήνυμα λάθους τη δεύτερη φορά που γίνεται κλικ.Αυτό σημαίνει ότι το τελευταίο στοιχείο του vertices δεν είναι null αλλά όλα τα προηγούμενα έχουν γίνει null για κάποιον περίεργο λόγο Από την άλλη αν αφήσω ανέπαφη τη γραμμή (shape.Vertices!=null) τότε θα εμφανιστεί μόνο ο τελευταίος κύκλος στο σημείο που έκανε click το ποντίκι.... Έχει κανείς κάποια ιδέα ??? Ανεβάζω και ένα screenshot....
virxen75 Δημοσ. 7 Μαρτίου 2010 Δημοσ. 7 Μαρτίου 2010 στείλε όλο τον κώδικα έστω και με pm να στο φτιάξω
SmaTheGreek Δημοσ. 7 Μαρτίου 2010 Μέλος Δημοσ. 7 Μαρτίου 2010 Βασικά θα με βοηθούσε περισσότερο αν μπορούσες να μου δώσεις κάποιες ιδέες από αυτά που έχω γράψει... ---------- Προσθήκη στις 18:22 ---------- Προηγούμενο μήνυμα στις 18:19 ---------- Τελικά το πρόβλημα λύθηκε αντικαθιστώντας τη δομή δυναμικού πίνακα vertices με μια ArrayList Ευχαριστώ!!!
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.