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

xaxaaria

New member

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

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

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

New member

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

xaxaaria

New member

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

g1wrg0s

New member

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

xaxaaria

New member

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

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

New member

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

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

xaxaaria

New member

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

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

xaxaaria

New member

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

vassilis498

Well-known member

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

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

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

xaxaaria

New member

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

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

Γιαννης!

New member

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

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

New member

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

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

Γιαννης!

New member

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

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


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

g1wrg0s

New member

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


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

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

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

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

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

New member

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

Vold

Well-known member

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

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

Nightmare++

New member

Ο 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.
 
Τελευταία επεξεργασία:

Vold

Well-known member

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

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

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

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

miketython

Active member

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

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

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