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

JAVA-CALCULATOR


vasgen

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

Δημοσ.

Καλησπερα σε ολους.!

 

Εχω ενα projectaki να φτιαξω ενα κομπιουτερακι, εχω φτιαξει το Interface και εχω βαλει τα κουμπια με τα νουμερα οταν πατιουνται να εμφανιζουν τον αντοιστιχο αριθμο. Θελω να μαθω πως αν καποιος ξερει πωσ π.χ. αν θελω να προσθεσω εναν αριθμο (120)+(12) πως θα γινει να πατωντας το (1) και μετα το (2) να μην σβυσει το (1) και επισης πατωντας το (+) να σβηνουν τα προηγουμενα για να γραψω το (12) και να τα προσθεσω.

 

Παρακατω ειναι και ο μεχρι τωρα κωδικας.!

Ευχαριστω εκ των προτερων....

Calcl.txt

Δημοσ.

Δεν έχω κοιτάξει τον κώδικά σου απλά σου λέω την λύση:

 

Έστω ότι έχεις ένα JTextField εν ονόματι "text"

 

Προσθέτεις στο τέλος του κειμένου που έχει μέσα:

 

text.setText( text.getText() + "1" );

 

Και για να σβήσεις το κείμενο μέσα στο text field απλά κάνεις:

 

text.setText("");

 

Αυτή ήταν η ερώτηση??

Δημοσ.

Ευχαριστω, αλλα μαλλον δεν το εξηγησα εγω καλα.

Οταν πατω ενα κουμπι, μου εμφανιζει τον αριθμο, αν ομως θελω να προσθεσω

ενα αριθμο πχ 3ψηφιο ας πουμε το 150 πατω στην αρχη το 1 μετα με το που παταω το 5 το ενα εξαφανιζεται θελω δλδ να παραμενει ο αριθμος στο textfield

μεχρι να πατηθει καποιο κουμπι οπως (+,-,*,/,=).

 

Ελπιζω τωρα να εγινα καλυτερα κατανοητος.

Δημοσ.

Συνεχίζεις να μην το εξηγείς καλά.

 

Λες: Έστω ότι ο χρήστης θέλεις να πληκτρολογήσει τον αριθμό 150

 

Τότε πατάει 1....οπότε το text field έχει "1"

 

Μετά λογικά πατάει 5....εσύ λες ότι:

 

παταω το 5 το ενα εξαφανιζεται θελω δλδ να παραμενει ο αριθμος στο textfield

 

Άρα αν το ένα εξαφανίζεται τότε το text field μετά το πάτημα του 5 δείχνει--->"5" και όχι "15"

 

Προφανώς δεν είναι αυτό που θέλεις.Αλλά επειδή δεν χρειάζεται και πολύ μυαλό για να καταλάβω τι θέλεις να κάνεις επαναλαμβάνω:

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

Από την αρχή

 

Το text field αρχικά είναι κενό -----> ""

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

Ο χρήστης πατάει το 1

 

εκτελείται το: text.setText(text.getText() + exteredText);

 

Οπότε το text field τώρα δείχνει τον αριθμό --------> "1"

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

O χρήστης πατάει τον αριθμό 5

 

εκτελείται το: text.setText( text.getText() + enteredText );

 

Οπότε το text field ήταν "1" και βάζοντας το "5" στο τέλος γίνεται "15".

 

 

 

Αυτό δεν προσπαθείς να κάνεις???

Δημοσ.

Αυτο ακριβως εννοω.!

 

Τον κωδικα που μου εχεις γραψει τον βαζω στον actionListener καθε κουμπιου

ξεχωριστα.?

 

Επισης προσπαθω αφου γραφτει ο ενας αριθμος της πραξης να μπορει να αποθηκεθεται καπου μεχρι να γραφτει και ο δευτερος ωστε να γινει ι πραξη.!

 

Ευχαριστω πολυ φιλαρακι.!

Δημοσ.

Μπορείς να έχεις έναν κοινό action listener και να βλέπεις πιο κουμπί πατήθηκε με το event.getSource().Αλλά μπορείς να έχεις και ένα action listener για το κάθε κουμπί.

 

Όσο αναφορά το πως θα αποθηκεύεις το νούμερο που πατήθηκε απλά έχε μία μεταβλητή στην τάξη σου και αποθήκευσέ το εκεί.

 

Οι ερωτήσεις που κάνεις πάντως είναι πάρα πολύ βασικές,πρέπει να τονίσω.

Μήπως θα ήταν καλύτερα να ξεκίναγες λίγο το διάβασμα??

 

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

 

Δεν θέλω να στην πω,απλά δίνω μία φιλική συμβουλή.

Δημοσ.

Το ξερω οτι οι ερωτησεις ειναι αρχαριου αλλα το παλευω:-). Απλα εκει που ξεκινισαμε τζαβα στο (Α)τει ηρθε το πασχα και μας εβαλε ο καθηγητης ενα προτζεκτ το οποιο ειναι παραπερα απο αυτα που ηδη ειχαμε κανει.!

 

Ευχαριστω παντος.!!

Δημοσ.

Βασικά αυτό που σού 'πε ο Αιβαλής ήταν να έχεις ένα int που να το πολλαπλασιάζεις επί 10 και να προσθέτεις τον καινούργιο αριθμό. Εναλλακτικά μπορείς να κανεις αυτό που λεεί το παλικάρι από πάνω. Αύτο όμως έχει κάποια προβλήματα που βαριέμαι να εξηγήσω. Τέλος έχεις και την μέθοδο concat() που θα πρότεινα, άλλα είναι εκτός ύλης.

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

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

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