Java Graphics Help!!!

Συζητήσεις για την Java

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
thanos45
Δημοσιεύσεις: 8
Εγγραφή: 16 Σεπ 2008 13:22
Τοποθεσία: ΑΘΗΝΑ

Java Graphics Help!!!

Δημοσίευση από thanos45 » 15 Δεκ 2010 01:36

Έχω ένα swing JFrame και θέλω να εμφανίσω τη γραφική παράσταση μιας συνάρτησης σε αυτό
Δημιουργώ μιά κλάση στη οποία ζωγραφίζω ένα κυκλάκι (το σημάδι για κάθε ζεύγος συντεταγμένων) και στην πορεία σκευτόμουν να προσθέσω και μία γραμμή που θα ενώνει
τα μικρά κυκλάκια για να σχηματίσει τη γραφική παράσταση.
η κλάση είναι η παρακάτω

public class Circle {
//μεταβλητές κλάσης
int x; // συντεταγμένη θέσης πλάτος χ απ την αριστερή επάνω γωνία
int y; // συντεταγμένη θέσης μήκος ψ απ την αριστερή επάνω γωνία
int diameter;// διάμετρος του κύκλου
Color color;

//====================================================== constructor
Circle() {
//δημιουργεί ένα κύκλο στο σημείο που καθορίζεται απ τις
//συντεταγμένες χ,ψ που παίρνει ως παραμέτρους
x = 0; //απόσταση απ την επάνω αριστερη γωνία (δεξιά)
y = 0; //απόσταση απ την επάνω αριστερή γωνία (κάτω)
diameter = 10; //διάμετρος κύκλου
color = Color.RED; //χρώμα κύκλου
}

//================================== draw
public void paint(Graphics g, int length,int weight) {

x=length;
y=weight;
g.fillOval(x, y, diameter, diameter);
g.setColor(color);

}

}

Tο ερώτημα είναι πως θα εμφανίσω αυτήν τελεία (ή και τη γραμμή) στο frame;

Δηλαδή πως θα δημιουργήσω ένα αντικείμενο τύπου Graphics που παίρνει η paint
παραπάνω ως παράμετρο αφού η κλάση Graphics είναι abstract;
Παντού στο Internet έχω βρεί κώδικα αλλά όχι ολοκληρωμένο.Εγώ θέλω να μου πεί κάποιος (αν γνωρίζει) πως θα το εμφανίσω.
Γιατί χτυπάει ο NetBeans στη μεταβλητή τύπου Graphics (δηλαδή το g);
Τελος πάντων πώς θα κάνω την κλήση μέσα στο frame για να δουλέψει;

Ευχαριστώ πολύ

javment
Δημοσιεύσεις: 25
Εγγραφή: 02 Οκτ 2010 01:02
Επικοινωνία:

Java Graphics Help!!!

Δημοσίευση από javment » 15 Δεκ 2010 12:19

Καταρχήν μου φαίνεται πιο σωστο να δημιουργήσεις ένα JPanel που θα είναι ο canvas ας πούμε για να σχεδιάσεις πάνω την γραφική σου παράσταση και έπειτα το προσθέτεις σε ένα JFrame.

Για παράδειγμα:

Κώδικας: Επιλογή όλων

public class myPanel extends JPanel {
    public myPanel(){   
      super();
    }


  @Override
        protected void paintComponent(Graphics g) {
         Graphics2D g2 = (Graphics2D)g;          
        //Για τα x,y σου σχεδιάζεις ότι θές   
           g2.fill ktl ktl         
        }
}

Κώδικας: Επιλογή όλων

public class MyFrame extends JFrame{
    public    myFrame(){
         super();
         add(new MyPanel());
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
       setSize(600,600)
    }
}
και κάπου την καλείς

Κώδικας: Επιλογή όλων

MyFrame frm = new MyFrame();
frm.setVisible(true);
   
Γενικά όταν χρησιμοποιείς το swing είναι προτειμότερο να χρησιμοποιείς την paintComponent αντί της paint.
Δεν θα δημιουργήσεις εσύ αντικείμενο Graphics για να το δώσεις στην paintCompoment(Graphics g) αυτή η μέθοδος την κάνεις override και θα καλείτε μόνη της όταν κρίνεται ότι απαιτείται να γίνει ενημέρωση, ή όταν από μόνος κάπου καλέσεις την rapaint();

Για κοίτα ένα παράδειγμα εδώ
http://download.oracle.com/javase/tutor ... step1.html

Άβαταρ μέλους
virxen75
Δημοσιεύσεις: 493
Εγγραφή: 18 Φεβ 2009 00:17
Τοποθεσία: ΗΡΑΚΛΕΙΟ ΚΡΗΤΗΣ

Java Graphics Help!!!

Δημοσίευση από virxen75 » 15 Δεκ 2010 20:07

επειδή αναφέρεις το netbeans σου έφτιαξα ένα παράδειγμα σε αυτό
Συνημμένα
GraphicsExample.rar
(21.91 KiB) Μεταφορτώθηκε 371 φορές

thanos45
Δημοσιεύσεις: 8
Εγγραφή: 16 Σεπ 2008 13:22
Τοποθεσία: ΑΘΗΝΑ

Java Graphics Help!!!

Δημοσίευση από thanos45 » 20 Δεκ 2010 16:49

Παιδιά σας ευχαριστώ πολύ και τους δύο
Τελικά τα κατάφερα
ΟΛΑ ΚΑΛΑ
:P :P :P :hammer: :kaloe: :kaloe: :kaloe:

Απάντηση

Επιστροφή στο “Java”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης