Βοήθεια/Απορίες στη γλώσσα προγραμματισμού Java

xaxaaria

Νεοφερμένος

Η xaxaaria αυτή τη στιγμή δεν είναι συνδεδεμένη. Έχει γράψει 62 μηνύματα.
γεια σας! εχω μια απορία στην γλωσσά java! ελπίζω να ξέρετε να με βοηθήσετε!
όταν λέει "Η τιμη του δίνεται αυτόματα από το σύστημα" π.χ. για εναν κωδικο πως το κανω?
την μέθοδο get?
ευχαριστω!!

Σημείωση συντονιστή: Τα thread αφορά μόνο τη γλώσσα προγραμματισμού java .
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 10 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Επεξεργάστηκε από συντονιστή:

Πληροφορικάριος

Δραστήριο μέλος

Ο Πληροφορικάριος αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι Φοιτητής και μας γράφει απο Αθήνα (Αττική). Έχει γράψει 623 μηνύματα.
Προχθές ξεκίνησα Java αλλα αν πείς πιο συγκεκριμένα τι ζητάς μπορεί να βοηθήσω.
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 10 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

xaxaaria

Νεοφερμένος

Η xaxaaria αυτή τη στιγμή δεν είναι συνδεδεμένη. Έχει γράψει 62 μηνύματα.
Προχθές ξεκίνησα Java αλλα αν πείς πιο συγκεκριμένα τι ζητάς μπορεί να βοηθήσω.

λοιπόν στην εκφώνηση θέλει να φτιάξουμε κάποιες κλάσεις
σε μια απο αυτές τις κλάσεις εχει 3 μεταβλητές που τις διαβάζει απο το πληκτρολόγιο κ μια μεταβλητή κωδικό που δεν την διαβάζει απο το πληκτρολόγιο αλλά απο το σύστημα λεει"Ο κωδικός αυτός δεν θα πρέπει να ζητείται
από το χρήστη αλλά θα δίνεται αυτόματα από το σύστημα."
τις άλλες ξέρω πως θα τις κάνω να τις διαβάζει απο το πληκτρολόγιο
αλλά την μεταβλητή κωδικό που την θέλει απο το σύστημα πως????
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 10 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

g1wrg0s

Επιφανές μέλος

Ο 01001 αυτή τη στιγμή δεν είναι συνδεδεμένος. Έχει γράψει 9,074 μηνύματα.
τι εκφραζει αυτη η μεταβλητη. Για ποιο λογο ειναι μεσα στη κλαση ;
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 10 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

xaxaaria

Νεοφερμένος

Η xaxaaria αυτή τη στιγμή δεν είναι συνδεδεμένη. Έχει γράψει 62 μηνύματα.
τι εκφραζει αυτη η μεταβλητη. Για ποιο λογο ειναι μεσα στη κλαση ;

π.χ. το ΑΜΚΑ είναι ένα νούμερο που θέλει να δίνετε απο το σύστημα και οχι απο το πληκτρολόγιο.
και η κλάση αυτή περιεχέι το όνομα και το επώνυμο του ανθρώπου κ ΑΜΚΑ .
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 10 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Πληροφορικάριος

Δραστήριο μέλος

Ο Πληροφορικάριος αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι Φοιτητής και μας γράφει απο Αθήνα (Αττική). Έχει γράψει 623 μηνύματα.
Για να φτιάξεις το ΑΜΚΑ πρέπει να ξέρεις την ημερομηνία γέννησης το ατόμου. Την έχεις? ή ως ΑΜΚΑ θέλει έναν απλό αριθμό?

Άν θέλει απλά έναν αριθμό μπορείς να δηλώσεις μια static μεταβλητή κλασης που στον constructor: θα την αυξάνεις π.χ. κατα 1 και θα την καταχωρείς στην μεταβλητή ΑΜΚΑ. Έτσι το κάθε άτομο(αντικείμενο) θα έχει έναν διαφορετικό κωδικό (ΑΜΚΑ).
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 10 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

xaxaaria

Νεοφερμένος

Η xaxaaria αυτή τη στιγμή δεν είναι συνδεδεμένη. Έχει γράψει 62 μηνύματα.
Για να φτιάξεις το ΑΜΚΑ πρέπει να ξέρεις την ημερομηνία γέννησης το ατόμου. Την έχεις? ή ως ΑΜΚΑ θέλει έναν απλό αριθμό?

Άν θέλει απλά έναν αριθμό μπορείς να δηλώσεις μια static μεταβλητή κλασης που στον constructor: θα την αυξάνεις π.χ. κατα 1 και θα την καταχωρείς στην μεταβλητή ΑΜΚΑ. Έτσι το κάθε άτομο(αντικείμενο) θα έχει έναν διαφορετικό κωδικό (ΑΜΚΑ).

ναι θέλει ένα τυχαίο αριθμό (δικό μου) !
οοκ! ευχαριστώ πολύ!! :D :D
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 10 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

xaxaaria

Νεοφερμένος

Η xaxaaria αυτή τη στιγμή δεν είναι συνδεδεμένη. Έχει γράψει 62 μηνύματα.
Γεια σας και πάλι!
θέλω να σε ρωτήσω κάτι ακόμα για τις στατικ μεταβλητες!
εγω εχω φτιαξει ενα πικανα τυπου Ανθρωποι κ μέσα εχω καταχωρήσει όνομα, επίθετο,ΑΜΚΑ οπου αμκα μια στατικ μεταβλητή!
οταν παω να εκτυπώσω με μια φορ κ καλώντας την μεθοδο πριντ ολα μου τα εκτυπώνει σωστά εκτός απο το Αμκα μου εκτυπώνει σε όλους το ίδιο οπου αντιστοιχεί στον τελευταίο άνθρωπο !
γιατι γντ αυτο?διοτι ειναι στατικ? και τι θα κανω για να το διορθώσω?
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 10 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

vassilis498

Διακεκριμένο μέλος

Ο vassilis498 αυτή τη στιγμή δεν είναι συνδεδεμένος. Έχει γράψει 7,079 μηνύματα.
Γεια σας και πάλι!
θέλω να σε ρωτήσω κάτι ακόμα για τις στατικ μεταβλητες!
εγω εχω φτιαξει ενα πικανα τυπου Ανθρωποι κ μέσα εχω καταχωρήσει όνομα, επίθετο,ΑΜΚΑ οπου αμκα μια στατικ μεταβλητή!
οταν παω να εκτυπώσω με μια φορ κ καλώντας την μεθοδο πριντ ολα μου τα εκτυπώνει σωστά εκτός απο το Αμκα μου εκτυπώνει σε όλους το ίδιο οπου αντιστοιχεί στον τελευταίο άνθρωπο !
γιατι γντ αυτο?διοτι ειναι στατικ? και τι θα κανω για να το διορθώσω?


Δεν ξέρω από java αλλά αν κρίνω από τη C++ νομίζω μπορώ να βοηθήσω. Οι static μεταβλητές μέσα σε κλάσεις παραμένουν ίδιες για κάθε instance της κλάσης για αυτό και το ΑΜΚΑ στο εκτυπώνει ίδιο. Αυτό που σου είπε ο πληροφορικάριος αν δεν κάνω λάθος ( και είναι το πιο λογικό ) είναι να δημιουργήσεις μια seeding μεταβλητή static έτσι ώστε να μπορείς κάθε φορά στον constructor να τραβάς τιμές από εκεί, να τις αναθέτεις στο ΑΜΚΑ σου και στη συνέχεια να την αυξάνεις κατά ένα. Το ΑΜΚΑ θα είναι ξεχωριστή ( μη static ) μεταβλητή-μέλος της κλάσης σου.

Εναλλακτικά θα μπορούσες απλά κάθε φορά να αναθέτεις ως ΑΜΚΑ μια random τιμή από κάποια συνάρτηση ( στη C/C++ είναι η rand() η java θα χει αντίστοιχη ) αλλά έτσι δεν εξασφαλίζεις τη μοναδικότητα των κωδικών σου.
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 10 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

xaxaaria

Νεοφερμένος

Η xaxaaria αυτή τη στιγμή δεν είναι συνδεδεμένη. Έχει γράψει 62 μηνύματα.
Δεν ξέρω από java αλλά αν κρίνω από τη C++ νομίζω μπορώ να βοηθήσω. Οι static μεταβλητές μέσα σε κλάσεις παραμένουν ίδιες για κάθε instance της κλάσης για αυτό και το ΑΜΚΑ στο εκτυπώνει ίδιο. Αυτό που σου είπε ο πληροφορικάριος αν δεν κάνω λάθος ( και είναι το πιο λογικό ) είναι να δημιουργήσεις μια seeding μεταβλητή static έτσι ώστε να μπορείς κάθε φορά στον constructor να τραβάς τιμές από εκεί, να τις αναθέτεις στο ΑΜΚΑ σου και στη συνέχεια να την αυξάνεις κατά ένα. Το ΑΜΚΑ θα είναι ξεχωριστή ( μη static ) μεταβλητή-μέλος της κλάσης σου.

Εναλλακτικά θα μπορούσες απλά κάθε φορά να αναθέτεις ως ΑΜΚΑ μια random τιμή από κάποια συνάρτηση ( στη C/C++ είναι η rand() η java θα χει αντίστοιχη ) αλλά έτσι δεν εξασφαλίζεις τη μοναδικότητα των κωδικών σου.

ook!ευχαριστω πολυ!! :)
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 10 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Γιαννης!

Νεοφερμένος

Ο Γιαννης! αυτή τη στιγμή δεν είναι συνδεδεμένος. Έχει γράψει 2 μηνύματα.
γεια σας!
εχω μια απορρια κ εγω για java! :)
λοιπον εχουμε μια κλαση π.χ. ανθρωποι και μεσα σε αυτην την κλαση εχουμε εναν πινακα π.χ. παιδια (των ανθρωπων!) η κλαση ανθωπος ειναι και αυτη ενας πινακας φτιαγμενος ομως στην μαιν!
πως μπορω να χρησιπομοιησω τον πινακα παιδια στην μαιν για να αποθικευω τα παιδια που εχει κα8ε ανθωπος??
αυτο ειναι σωστο?
person.setChildren(2)?? η' person.setChildren[j](2)???
ευχαριστώ για τον χρόνο σας!
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 10 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Πληροφορικάριος

Δραστήριο μέλος

Ο Πληροφορικάριος αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι Φοιτητής και μας γράφει απο Αθήνα (Αττική). Έχει γράψει 623 μηνύματα.
Η setChildren είναι συνάρτηση οπότε το setChildren[j] που γράφεις στο δεύτερο είναι λάθος. Το πρώτο φαίνεται σωστό. πχ

person.setChildren(j,"onoma",eponumo"); Κάνει set όνομα και επώνυμο στο j παιδί του i ανθρώπου.
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 10 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Τελευταία επεξεργασία:

Γιαννης!

Νεοφερμένος

Ο Γιαννης! αυτή τη στιγμή δεν είναι συνδεδεμένος. Έχει γράψει 2 μηνύματα.
Η setChildren είναι συνάρτηση οπότε το setChildren[j] που γράφεις στο δεύτερο είναι λάθος. Το πρώτο φαίνεται σωστό. πχ

person.setChildren(j,"onoma",eponumo"); Κάνει set όνομα και επώνυμο στο j παιδί του i ανθρώπου.


χρησ. αντικείμενα τύπου παιδιά πως γντ να το κάνω?
αν υπάρχει μια κλάση που λέγετε παιδια!
κ μεσα στον πινακα παιδια που βρίσκετε στην κλάση άνθρωποι θελει παιδια που να ανήκουν στην κλαση παιδια ( που ειναι ενας πινακας δηλωμένος στην μαιν)
ευχαριστώ! ελπίζω να μην τα ειπα μπερδεμένα και να μπορέσεις να με βοηθήσεις !!
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 10 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

g1wrg0s

Επιφανές μέλος

Ο 01001 αυτή τη στιγμή δεν είναι συνδεδεμένος. Έχει γράψει 9,074 μηνύματα.
Αρχικα θα σου πω οτι αυτρς τις εξαρτησεις θα πρεπει να τις κατανοησεις διοτι με αυτο τον τροπο φτισχνεις συνεχεια προγραμματα στη java.


Μια λυση θα ηταν η παρακατω :

μια συναρτηση setChild(...) μεσα στη κλαση ανθρωπος
μια συναρτηση setfeatures(...) μεσα στη λαση child.

Ετσι η κληση θα ειναι person.setChild(...).setfeatures(...);

Προφανως αυτη ειναι η λογικη. Δες το και σκεψου ποιες μπορει να ειναι οι παραμετροι της καθε μεθοδου. :)
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 10 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Πληροφορικάριος

Δραστήριο μέλος

Ο Πληροφορικάριος αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι Φοιτητής και μας γράφει απο Αθήνα (Αττική). Έχει γράψει 623 μηνύματα.
Αν κατάλαβα λες να προσπλάσεις τον children[] απο την main

person.children[j].setChild(2)

Ετσι η κληση θα ειναι person.setChild(...).setfeatures(...);



Προφανώς εννοείς getChild(...).
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 10 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Τελευταία επεξεργασία:

Vold

Πολύ δραστήριο μέλος

Ο Vold αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 28 ετών, Φοιτητής και μας γράφει απο Ηράκλειο (Κρήτη). Έχει γράψει 1,629 μηνύματα.
Λίγο ξεθάψιμο στο topic αλλά τι να κάνουμε, έχουμε απορίες :P

Για αρχή, και το πιο σημαντικό που θα ήθελα να μάθω, είναι τον τρόπο με τον οποίο μπορώ να αφαιρέσω από ένα java frame ένα κουμπί που έχω φτιάξει. Εννοώ προφανώς κατά το running του προγράμματος. Ή εναλλακτικά πως μπορώ να αλλάξω το φόντο του κουμπιού του. Ότι δοκιμές κι αν έκανα δεν οδηγούσαν σε κάτι δυστυχώς.
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 8 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Nightmare++

Νεοφερμένος

Ο Nightmare++ αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι Φοιτητής και μας γράφει απο Αθήνα (Αττική). Έχει γράψει 6 μηνύματα.
Λίγο ξεθάψιμο στο topic αλλά τι να κάνουμε, έχουμε απορίες :P

Για αρχή, και το πιο σημαντικό που θα ήθελα να μάθω, είναι τον τρόπο με τον οποίο μπορώ να αφαιρέσω από ένα java frame ένα κουμπί που έχω φτιάξει. Εννοώ προφανώς κατά το running του προγράμματος. Ή εναλλακτικά πως μπορώ να αλλάξω το φόντο του κουμπιού του. Ότι δοκιμές κι αν έκανα δεν οδηγούσαν σε κάτι δυστυχώς.


Αν με το "αφαιρέσω" εννοείς να το αφαιρέσεις οπτικά, τότε χρησιμοποίησε την μέθοδο της setVisible(boolean flag) της JButton ως broThisIsTheButtonIWantToMakeInvisible.setVisible(false); κάπου, ενδεχομένως σε συνδυασμό με mouse listeners και λοιπά.


Αν εννοείς να το διαγράψεις εντελώς στην κυριολεξία και να το καταπιεί ο garbage collector και να μην το ξαναδείς πότε στη ζωή σου κλπ κλπ, τότε δεν υπάρχει "έτοιμος" τρόπος, γιατί δεν είναι συγκεκριμένο task.
Η λογική είναι η εξής: αφαιρείς το κουμπί απ΄το JPanel σου ή κάποιο αντίστοιχο Container με την remove, (myPanel.remove(shittyButton); ), θέτεις την αναφορά του κουμπιού σου να δείχνει σε null ώστε ο gc να περισυλλέξει το άχρηστο αντικείμενο ευκολότερα, κι εν τέλει κάνεις κι ένα revalidation καλώντας την myPanel.revalidate(); που αν θες να δεις τι κάνει αναλυτικά, δες το java reference της: με λίγα λόγια "επανατακτοποιεί" το layout. Ενδεχομένως να πετυχαίνει και η invalidate().
Τελικά, για να ΄σαι καθαρός, επαναζωγράφισε τη φάση σου με myPanel.repaint();
Λογικά θα δουλεύει όλο αυτό. Δεν το ΄χω χρησιμοποιήσει ποτέ προσωπικά.

Συμβουλές: Μην ξεχνάς να τσεκάρεις για null αναφορές, ειδικά σε καλόντα αντικείμενα (όπως εδώ το JPanel ή το όποιο Container).
Μια αναφορά που δεν δείχνει σε αντικείμενο, δε μπορεί να καλέσει κάποια μέθοδο. (you don't say) Εδώ βέβαια, ίσως είναι περιττό, οκ.
Σε μια κατάσταση mouse event handling θα κινηθείς έτσι:

public void actionPerformed(ActionEvent ae) {
JButton button = (JButton) ae.getSource(); //Παίρνω ένα ActionEvent με συγκεκριμένα χαρακτηριστικά εκ των οποίων με νοιάζει πολύ, προφανώς, η πηγή του γεγονότος αυτού. Φυσικά casting because you're a pro.
if (mySexyPanel != null && button != null) //overly suspicious java programmer
{
mySexyPanel.remove(button);
button = null; //overly attached to memory handling java programmer
mySexyPanel.revalidate();
mySexyPanel.repaint();
}
}

Κάτι τέτοιο γενικά.
Όλες οι απαντήσεις βρίσκονται στο standard Java API.
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 8 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Τελευταία επεξεργασία:

Vold

Πολύ δραστήριο μέλος

Ο Vold αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 28 ετών, Φοιτητής και μας γράφει απο Ηράκλειο (Κρήτη). Έχει γράψει 1,629 μηνύματα.
Πρώτα απ' όλα θα ήθελα να σ' ευχαριστήσω για την άμεση απάντηση σου και για όλες αυτές τις χρήσιμες πληροφορίες που μου πρόσφερες :)

Αναφερόμουν στην δεύτερη περίπτωση.
Δοκίμασα όλα όσα ανέφερες και βγήκε το επιθυμητό αποτέλεσμα. Μάλιστα, ανάλογα με τον τρόπο χρήσης αυτών των συναρτήσεων βγαίνουν διαφορετικά αποτελέσματα. Π.χ είδα αναδίπλωση των εικόνων όταν δεν χρησιμοποιώ την συνάρτηση repaint.

Αυτό που δεν κατάλαβα είναι γιατί χρησιμοποιείς το όνομα της κλάσης σου(mySexyPanel) ώστε να προσπελάσεις στις συναρτήσεις της.
Υλοποίησες την λειτουργία των κουμπιών σε μια ξεχωριστή κλάση, εκτός της mySexyPanel; Αλλά σε μια τέτοια περίπτωση δεν θα πρέπει να υπάρχει μια άλλη κλάση όπως η "private/public class Handler implements ActionListener", μέσα στην οποία να τοποθετείται το τμήμα κώδικα σου ;
Αν κάνεις την κλάση Handler εντός της mySexyPane γράφεις revalidate(); αντί mySexyPanel.revalidate();

Θα ήθελα να σου κάνω μερικές ακόμη ερωτήσεις.
Πως μπορώ να αλλάξω την εικόνα ενός κουμπιού;
Επίσης πως μπορώ να προσθέσω σε κουμπιά τα οποία βρίσκονται σε ένα arraylist ένα ActionListener;
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 8 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Τελευταία επεξεργασία:

Guest 039548

Επισκέπτης

αυτή τη στιγμή δεν είναι συνδεδεμέν. Δεν έχει γράψει κανένα μήνυμα.

Χρήστες Βρείτε παρόμοια

  • Τα παρακάτω 0 μέλη και 1 επισκέπτες διαβάζουν μαζί με εσάς αυτό το θέμα:
    Tα παρακάτω 3 μέλη διάβασαν αυτό το θέμα:
  • Φορτώνει...
Top