Προς το περιεχόμενο

Java: Επικοινωνία μεθόδων applet με άλλες κλάσεις


giannibrase

Προτεινόμενες αναρτήσεις

Δημοσ.

Γεια σας,

 

σχετικά με την πτυχιακή μου με θέμα οπτικοποίηση αλγορίθμων με χρήση της java έχω ένα πρόβλημα...

Δε θα γράψω τον κώδικα επειδή είναι ήδη αρκετά μεγάλος,αν θελήσει κάποιος να τον δει ευχαρίστως θα τον προσθέσω...

 

Γενικά:

 

Η εργασία μου είναι ένα applet,το οποίο εμφανίζει γράφηματα και ο χρήστης θα μπορεί διαδραστικά με κουμπιά κτλ. να εφαρμόζει αλγορίθμους εύρεσης ελαχίστου δρόμου,συγκεκριμένα τον Kruskal και τον Prim..

 

Μεταξύ άλλων κλάσεων έχω μια κλάση showgui (η applet class μου), κλάση Kruskal για την εφαρμογή του αλγορίθμου στο γράφημα και μια κλάση drawPanel η οποία επεκτείνει την Panel και σχεδιάζει γενικότερα τα γραφήματα μου στο applet class.

 

Το πρόβλημα μου είναι το εξής:

 

Δημιουργώ αντικείμενο της drawPanel και καλώ μεθόδους της μέσα από την applet class μου. Θέλω να δημιουργώ επίσης ένα αντικείμενο της Kruskal στην applet class μου και έπειτα μέσα από την drawPanel να έχω πρόσβαση στο ίδιο αντικείμενο Kruskal που δημιούργησα στο applet. Πως γίνεται αυτό;Δε θέλω μεθόδοι της Kruskal μου να είναι static και στην ουσία νομίζω δεν χρειάζεται να δημιουργήσω object του applet μέσα στην drawPanel μου...

 

Για να παρακάμψω αρχικά αυτό το πρόβλημα δημιούρησα ένα object Kruskal μέσα στη drawPanel και έπειτα το καλώ από το applet μου.. Θεωρώ όμως ότι χάνεται έτσι όλη η OOP νοοτροπία και γενικότερα η drawPanel μου θέλω να κάνει μόνο μια δουλειά, να ζωγραφίζει μόνο και να μην δημιουργεί άσχετα αντικείμενα..

 

Στην ουσία αν δημιουργήσω ένα object Kruskal μέσα στο applet

μου δεν μπορώ να έχω αναφορά στο ίδιο object μέσα από την drawPanel μου, εκτός αν δημιουργήσω ένα αντικείμενο του applet μου, που και αυτό νομίζω είναι κάπως χαζό...

 

Δεν ξέρω αν έγινα αντιληπτός, εύχομαι πως ναι :)...

Νομίζω ότι μπερδεύομαι κυρίως σχετικά με την applet class γενικότερα, αφού δεν έχει main,εκτελείται κατευθείαν και δεν χρειάζεται να δημιουργησω αντικείμενο της...

 

Ευχαριστώ και ελπίζω να βρω μια απάντηση

Δημοσ.

αν το δημιουργήσω στο applet και γράψω μέθοδο που επιστρέφει το αντικείμενο Kruskal,έστω getKruskal(),αν καλέσω απο την drawPanel μου την getKruskal() θα χτυπίσει o compiler... Δεν είναι static και δεν δημιουργώ μέσα στη drawPanel μου object από το applet,οπότε δεν γίνεται έτσι(αν εννοούσες αυτό)...

Δημοσ.

Φοβάμαι πως δεν θα βγάλεις άκρη, είναι αρκετά μεγάλος ο κώδικας...

Σε ευχαριστώ εκ των προτέρων πάντος για το ενδιαφέρον σου.

Αγνόησε το test.java, είναι μόνο για να τεστάρω μικρά τμήματα κώδικα.

 

 

Εφαρμοσμένη Πληροφορική, Πανεπιστήμιο Μακεδονίας

AlgorithmVisualization.zip

Δημοσ.

Λοιπόν αυτό ρωτούσα ήταν γιατί δεν έκανες απλά

 

>
   private Kruskal kruskex;


   public drawPanel(Kruskal kruskal){
       super();
       kruskex = kruskal;
       isExample=false;
       runned = false;
   }

 

Αντί στο setKruskal να δημιουργείς καινούργιο;

 

επισής, μεγάλο κώδικα το λες αυτό; xD

Δημοσ.

καλό φαίνεται αν και θα προτιμούσα γενικότερα να ξέρω πως μπορώ να έχω πρόσβαση στις μεθόδους του applet μου...

 

Θα το τεστάρω κάποια στιγμή και θα σου πω αν δούλεψε...

Για μένα είναι αρκετός κώδικας,αλλά μπροστά στον επαγγελματία τώρα δε με παίρνει :)

 

Thx πάντως,νομίζω θα δουλέψει έτσι...

Δημοσ.

μπορείς να περάσεις και όλο το applet σαν argument : O

 

πάντως αν προσέχεις τι κάνεις δεν είναι κάτι το τόσο τρομερό να μην σθμμορφώνεσαι απόλυτα στους oop κανόνες..

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...