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

Java FAQ


apoc

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

Hello! Ithela na rwtisw gia oures me voitheia pinaka se Java' date=' edw rwtaw?

 

I aporia mou exei na kanei me tin dequeue tis ArrayQueue, kai aytos einai o kwdikas :

 

public Object dequeue ( ) throws QueueEmptyException {

Object item ;

if (isEmpty() )

throw new QueueEmptyException ("Queue is Empty") ;

item = Q[first'] ;

Q[first++] = null;

return item ;

}

 

To Q einai o pinakas... I aporia mou einai i exis : Giati vazw to stoixeio item stin prwti thesi, kai meta diagrafw tin epomeni? Etsi den xanondai ta epomena stoixeia tis ouras? Exw berdeytei....

 

 

Giati paideuesai enw yparxei etoimh klash pou kanei auth th douleia?Rixe mia matia sthn Queue.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • 2 μήνες μετά...
  • Απαντ. 251
  • Δημ.
  • Τελ. απάντηση

Θα ήθελα να ρωτήσω το εξής:

Έχω μια κλάση η οποία κάνει extend στην JPanel και υλοποιεί την paintComponent. Αυτό το κάνω γιατί χρειάζονται αντικείμενα comp2D.

Ύστερα υπάρχει μια κλάση η οποία κληρονομεί από αυτή και χρησιμοποιεί και αυτή comp2D. Ο compiler μου βγάζει σφάλμα ότι δεν βρει την μεταβλητή σύμβολο comp2D.

Μήπως ξέρετε τι μπορεί να φταίει;

Δεν υπάρχει κάτι στην υπερκλάση που να είναι private.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Θα ήθελα να ρωτήσω το εξής:

Έχω μια κλάση η οποία κάνει extend στην JPanel και υλοποιεί την paintComponent. Αυτό το κάνω γιατί χρειάζονται αντικείμενα comp2D.

Ύστερα υπάρχει μια κλάση η οποία κληρονομεί από αυτή και χρησιμοποιεί και αυτή comp2D. Ο compiler μου βγάζει σφάλμα ότι δεν βρει την μεταβλητή σύμβολο comp2D.

Μήπως ξέρετε τι μπορεί να φταίει;

Δεν υπάρχει κάτι στην υπερκλάση που να είναι private.

 

 

δεν είμαι και κανένας guru στην java αλλά νομίζω πως ότι κάνεις implement δεν κλειρονομείται. Οπότε στην δεύτερη κλάση που κληρονομεί από την πρώτη απλά κάνε και εκεί implement το paintComponent και λογικά θα παίξει.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Ευχαριστώ πολύ! Θέλω να κάνω μια εργασία και με βοηθήσατε πολύ. :)

 

Άλλη απορία:

 

>private void animMovement(short direction, Point pos)
   {
   /* Εδώ αναλόγως με το ποιά είναι η τιμή του imNumber το οποίο μας δείχνει και ποιά εικόνα έχουμε, τότε αλλάζουμε και την
    * εικόνα που δείχνουμε στα ανάλογα pixels πριν φθάσουμε στο επόμενο κουτάκι. Όταν τελικά ο PacMan φθάνει σε ένα κουτάκι
    * έχει κλειστό το στόμα του.
    */
       switch (direction){
           case north : ((Graphics)comp2D).drawImage(pacman, pos.y * 24 - 4 * imNumber, pos.x * 24, this);
           case south : ((Graphics)comp2D).drawImage(pacman, pos.y * 24 + 4 * imNumber, pos.x * 24, this);
           case west  : ((Graphics)comp2D).drawImage(pacman, pos.y * 24, pos.x * 24 + 4 * imNumber, this);
           case east  : ((Graphics)comp2D).drawImage(pacman, pos.y * 24, pos.x * 24 + 4 * imNumber, this);
       }
   }

 

Αυτός είναι ο κώδικας στον οποίο μου βγάζει το λάθος. Αν υλοποιήσω την paintComponent, τότε αυτή δεν μπορεί να πάρει τα ορίσματα που θέλω. Να τα κάνω να φαίνονται σε όλη την κλάση ή μήπως υπάρχει κάποια καλύτερη λύση; Η μεταβλητή imNumber ήδη φαίνεται και για άλλους λόγους σε όλη την κλάση.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

γράψε ακριβώς το error που πετάει o compiler και επίσης βάλε να σου εμφανίζει σε κάθε γραμμή τον αριθμό της για να καταλάβουμε ακριβώς που χτυπάει.

 

ένα λάθος που βλέπω είναι οτί έχεις βάλει switch χωρίς break

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • 5 εβδομάδες αργότερα...

Geia sas!

Prospathw na ftiaksw to pacman se java kai thelw ti vohtheia sas se ena shmeio. otan o xrisths pata ena koumpi ap to plhktrologio thelw na stamataei ena thread na ginontai kapoioi upologismoi k meta na sunexizei to thread thn ektelesh tou. Vrika sto API ths Java mia texnikh me 2 synchronized blocks pou energopoieitai to thread analoga me mia metavlith boolean alla den egine tpt kamia idea? :?

to soma tis run() einai:

 

>public void run() {
     while(true) {
           try {
               synchronized(this) {
                   while (!threadActive) wait();
               }
           } catch (InterruptedException e) {}
           while(threadActive){
               if(dir == north) Movement.moveup();
               else if(dir == south) Movement.movedown();
               else if(dir == west) Movement.moveleft();
               else if(dir == east) Movement.moveright();
               try{Thread.sleep(500);} catch (InterruptedException ie) {}
           }
       }
   }

 

kamia idea?

thanks...

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

ένα Thread σταματάει με την wait() και ξαναξυπνάει με την notify().

 

Έστω ότι έχεις 2 threads το πρώτο και το άλλο που εκτελεί τους υπολογισμούς. Από το πρώτο thread ξεκινάς το δεύτερο thread των υπολογισμών και σαν επόμενη εντολή βάζεις wait.

 

Από το δεύτερο thread μόλις τελειώσεις τους υπολογισμούς σου καλείς notify() στο instance του πρώτου thread για να ξυπνήσει.

 

 

 

Ψάξε για Thread synchronization στο google. Αν θες κάτι άλλο πες.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • 4 εβδομάδες αργότερα...

Γεια σας θα ηθελα να ρωτησω το εξης:

Αν το προγραμμα ζηταει να δουλεψω με καποια συμβολοσειρα εγω ως τι θα τη δηλωσω;

Ως πχ String x;

η ως εναν πινακα πχ String x=new String[100];

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Moderators
Γεια σας θα ηθελα να ρωτησω το εξης:

Αν το προγραμμα ζηταει να δουλεψω με καποια συμβολοσειρα εγω ως τι θα τη δηλωσω;

Ως πχ String x;

η ως εναν πινακα πχ String x=new String[100];

 

Το πρώτο φαίνεται σωστό για αυτό που λες οτι θέλεις να κάνεις.

Το δεύτερο... στο δεύτερο του σκέλος δημιουργεί αναφορά σε ένα πίνακα απο 100 συμβολοσειρές... και μάλλον θα είχε νόημα μια σύνταξη:

 

>String[] x = new String[100];

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Μέχρι τώρα έγραφα σε C στο visual studio. Θα ξεκινήσω Java και έχω μερικές απορίες. Καταρχήν μου έδωσαν δύο προγράμματα να εγκαταστήσω τα οποία όπως μου είπαν είναι απαραίτητα. Το jdk και το eclipse SDK. Ξέρει μήπως κάποιος σε τι χρησιμεύει το κάθε ένα; Και επίσης ποια είναι η διαδικασία για να γράψουμε και να κάνουμε compile ένα πρόγραμμα;

Όποιος μπορεί ας βοηθήσει..:)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

αφου ξερεις απο v.studio,

το eclipse είναι ένα απο τα 5-6 "visual studios" που υπάρχουν για Java. και ειναι δωρεάν.

το jdk ειναι οτι και το microsoft .NET SDK. χωρις αυτό, το visual studio δεν θα δουλευε (το compile).

 

και το jre ειναι οτι και το microsoft .NET framework. Χωρις αυτο, το VS δεν θα μπορουσε να εγκατασταθεί καν.

--------------------------------------------------------

 

και αν το δεις αντιστροφα, το Νετ ειναι μια microsoftική java, αλλα αυτο ειναι αλλη ιστορια.

 

 

 

 

Το JDK περιλαμβανει τον compiler της java, και ολο το standard API (βιβλιοθηκες κωδικα) της sun.

Οτι χρειάζεσαι για να μεταφράσεις πηγαίο κώδικα σε εκτελέσιμο.

περιλαμβανει και το JRE, το runtime δηλαδή, που χρειάζεται για να εκτελέσεις προγράμματα java*.

 

 

Για να γράψεις τον κώδικα, θελεις μινιμουμ εναν editor. Εχεις το notepad, αλλα με αυτό δεν πας πολυ μακρυά.

 

οποτε θελεις ενα ide, που να διευκολύνει στο compile, την επισημανση λαθων, και αλλα πολλά...

 

ενα απο αυτα τα ide, ειναι το Eclipse.

( *που ειναι γραμμενο σε java, αρα για να το τρέξεις πρεπει να εγκαταστησεις πρωτα το JDK, που περιλαμβανει jre)

 

 

 

to eclipse sdk, ειναι η βάση του eclipse IDE. με μονο αυτό, μπορεις να γράψεις προγράμματα, java και C, C++, πολυ πιο ευκολα απο εναν απλο editor,

αλλα σε σχεση με αλλα java ide, το περιβάλλον ειναι λιγο σπαρτιάτικο.

πχ. visual gui designer δεν εχει.

 

το πλεονεκτημα του eclipse ειναι οτι μπορει να δεχτεί πολλα έτοιμα Plugins που αυξανουν τις δυνατότητες, και τις επιλογές σε γλώσσες ( visual editor, php, python, κλπ).

 

τα plugins einai ξεχωριστα download, απο το eclipse.org

 

 

Για αρχάριους, υπάρχουν τα EasyEclipse bundles, που έχουν πακέτα το eclipse sdk, to java sdk, και διαφορα plugin ομαδοποιημενα σε 5-6 downloads ανάλογα σε τι τεχνολογιες ενδιαφέρεσαι (desktop, web, klp).

http://www.easyeclipse.org/site/distributions/index.html

 

 

και εκτος του eclipse, υπάρχουν κι αλλα αξιολογα, και ισως πιο εύκολα java ide, επισης δωρεάν, οπως τα Netbeans, Jdeveloper, Jbuilder, Sun Studio, κλπ...

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

το eclipse εχει καποιες δικες του ιδιαιτερότητες.

Αν το μάθεις πρώτο, θα ειναι δυσκολο να δουλεψεις με αλλα ide,

οπως και αν αρχισεις με ενα απο τα υπόλοιπα, δυσκολα θα σου αρέσει μετά το eclipse.

 

-------------------------------------

 

οσο για τα πρωτα βήματα, ριχνεις μια ματιά στο http://www.eclipse.org/documentation/

 

στα πρώτα κεφάλαια των δυο αυτών docs

http://help.eclipse.org/help32/index.jsp (online reading)

Workbench User Guide (zipped PDF) http://www.eclipse.org/downloads/download.php?r=1&file=/eclipse/downloads/drops/R-3.1-200506271435/org.eclipse.platform.doc.user.3.1.pdf.zip

 

 

 

tutorials

http://www.cs.umanitoba.ca/~eclipse/

https://eclipse-tutorial.dev.java.net/eclipse-tutorial/part1.html

 

 

 

 

IBM (θελει εγγραφη για να τα δεις)

Eclipse's Rich Client Platform, Part 1: Getting started

http://www-128.ibm.com/developerworks/edu/os-dw-os-rcp1-i.html

 

Eclipse for Visual Studio developers

http://www-128.ibm.com/developerworks/edu/os-dw-os-eclipsevs-i.html

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Φίλε random, ευχαριστώ πολύ για την αναλυτικότατη και πολύτιμη βοήθεια σου!:)

Να ρωτήσω και κάτι που ξέχασα. Γραμή εντολών ή κάτι τέτοιο(σαν το run των windows), έχει καμία σχέση με την Java, ή μήπως έχει το eclipse κάτι τέτοιο;

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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

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


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