Dimitris_il_mix Δημοσ. 21 Ιουλίου 2011 Δημοσ. 21 Ιουλίου 2011 Έχω το εξής κομμάτι κώδικα (το έχω απλοποιήσει πολύ). Έχω 2 κουμπιά (b1 και b2).. κάνοντας κλικ στο πρώτο γεμίζεται ένας πίνακας x με τιμές 1,2,3 κ.ο.κ. και κάνοντας στον δεύτερο θέλω να εμφανίζεται ο πίνακας. Χοντρικά έχω: public void actionPerformed(ActionEvent e) { int i; int x[]=new int [10]; if (e.getSource()==b1) { b2.setEnabled(true); // giati to b2 einai arxika disable for (i=1;i<=10; i++) x=i } if (e.getSource()==b2) { for (i=1;i<=10; i++) system.out.println(x); } } Το πρόβλημα μου είναι ότι όταν πατήσω το 2ο κουμπί (πατάω πρώτα το 1ο ώστε να πάρει το x τις τιμές) ο πίνακας x φαίνεται σαν κενός. Δηλαδή οι τιμές που πήρε ο πίνακας με το πάτημα του κουμπιού 1 δεν φαίνονται στην συνέχεια.
drentas Δημοσ. 21 Ιουλίου 2011 Δημοσ. 21 Ιουλίου 2011 Πατάς δηλαδή να γεμίσει ο πίνακας πρώτα και μετά με το πάτημα του δεύτερου κουμπιού δεν εμανίζει?
Dimitris_il_mix Δημοσ. 21 Ιουλίου 2011 Μέλος Δημοσ. 21 Ιουλίου 2011 Πατάς δηλαδή να γεμίσει ο πίνακας πρώτα και μετά με το πάτημα του δεύτερου κουμπιού δεν εμανίζει? ακριβώς αυτό !! όταν πατήσω το κουμπί 2 είναι σαν να μην υπάρχουν τιμές στο πίνακα !!! δεν διατηρούνται δηλαδή..
adamco Δημοσ. 21 Ιουλίου 2011 Δημοσ. 21 Ιουλίου 2011 Δοκίμασε με την εντολή static. public static void actionPerformed(ActionEvent e) { ..... ... . }
djcat Δημοσ. 21 Ιουλίου 2011 Δημοσ. 21 Ιουλίου 2011 Λογικό είναι αυτό που κάνει. Κάθε φορά που πατάς το κουμπί, ο πίνακας σου δημιουργείται από την αρχή!
Technology fan Δημοσ. 21 Ιουλίου 2011 Δημοσ. 21 Ιουλίου 2011 Επίσης άλλαξε το for σου δηλαδή απο for (i=1;i<=10; i++) σε for (i=0;i<10; i++) Η αρίθμηση των πινάκων αρχίζει απο το μηδέν, βέβαια δε νομίζω έτσι να διορθωθεί το πρόβλημα σου, απλά απορώ πως δες σε βγάζει κανα σφάλμα IntexOutOfBounds όταν πατάς το πρώτο κουμπί. Edit: Επίσης να ρωτήσω, έχεις αναθέσει και στα δυό σου κουμπιά το actionlistener? Σίγουρα το χεις αντιγράψει σωστά εδώ επειδή δεν υπάρχει system.out.println(x); αλλα μόνο System.out.println(x);
hartzoua Δημοσ. 21 Ιουλίου 2011 Δημοσ. 21 Ιουλίου 2011 int i; int x[]=new int [10]; όπως ειπώθηκε ήδη το παραπάνω κομμάτι κώδικα θα πρέπει να το καλείς μόνο όταν πατάς το πρώτο κουμπί, όχι και το δεύτερο. Έτσι όπως το έχεις τώρα όταν πατάς το δεύτερο κουμπί δημιουργείς καινούρια κενή array και την εμφανίζεις.
Technology fan Δημοσ. 21 Ιουλίου 2011 Δημοσ. 21 Ιουλίου 2011 όπως ειπώθηκε ήδη το παραπάνω κομμάτι κώδικα θα πρέπει να το καλείς μόνο όταν πατάς το πρώτο κουμπί, όχι και το δεύτερο. Έτσι όπως το έχεις τώρα όταν πατάς το δεύτερο κουμπί δημιουργείς καινούρια κενή array και την εμφανίζεις. Σωστά δεν ξέρω πως μου ξέφυγε.... +1 από εμένα
adamco Δημοσ. 21 Ιουλίου 2011 Δημοσ. 21 Ιουλίου 2011 Αν δούμε αυτόν τον κώδικα: public static void main(String args[]) { int month_days[]; month_days = new int[12]; month_days[0] = 31; month_days[1] = 28; month_days[2] = 31; month_days[3] = 30; month_days[4] = 31; month_days[5] = 30; month_days[6] = 31; month_days[7] = 31; month_days[8] = 30; month_days[9] = 31; month_days[10] = 30; month_days[11] = 31; System.out.println("April has " + month_days[3] + " days."); } μάλλον έτσι είναι πιο σωστά: int i; int x[]; x = new int[10]; ...... ...... ......
Technology fan Δημοσ. 21 Ιουλίου 2011 Δημοσ. 21 Ιουλίου 2011 Αν εννοείς για το int x[]; x = new int[10]; ή το int x[] = new int[10]; Όχι είναι το ίδιο πράγμα...
Dimitris_il_mix Δημοσ. 22 Ιουλίου 2011 Μέλος Δημοσ. 22 Ιουλίου 2011 Επίσης άλλαξε το for σου δηλαδή απο for (i=1;i<=10; i++) σε for (i=0;i<10; i++) Η αρίθμηση των πινάκων αρχίζει απο το μηδέν, βέβαια δε νομίζω έτσι να διορθωθεί το πρόβλημα σου, απλά απορώ πως δες σε βγάζει κανα σφάλμα IntexOutOfBounds όταν πατάς το πρώτο κουμπί. Edit: Επίσης να ρωτήσω, έχεις αναθέσει και στα δυό σου κουμπιά το actionlistener? Σίγουρα το χεις αντιγράψει σωστά εδώ επειδή δεν υπάρχει system.out.println(x); αλλα μόνο System.out.println(x); 'Technology fan' σωστός για το for σωστός και για το System.out !! Δεν τον έκανα copy paste.. το έγραψα γρήγορα για να σας δείξω παράδειγμα με το τι πρόβλημα έχω !! Με λίγα λόγια θέλω να κρατιούνται οι τιμές του πίνακα x και όταν πατήσω το 2ο κουμπί !! να μην χαθούν δηλαδή !!
Technology fan Δημοσ. 22 Ιουλίου 2011 Δημοσ. 22 Ιουλίου 2011 Μία λύση στο πρόβλημα σου είναι να περάσεις τον πίνακα με όρισμα στο ActionListener σου...
Lays Δημοσ. 25 Ιουλίου 2011 Δημοσ. 25 Ιουλίου 2011 Θα πρέπει η "μεταβλητή" - πίνακας σου να ειναι γενικη και οχι τοπικη για να εχεις προσβαση απο τα 2 κουμπια.
ChRis6 Δημοσ. 25 Ιουλίου 2011 Δημοσ. 25 Ιουλίου 2011 Θα πρέπει η "μεταβλητή" - πίνακας σου να ειναι γενικη και οχι τοπικη για να εχεις προσβαση απο τα 2 κουμπια. Αντε πες τοοοο. ορισε τον πινακα εξω απο τον listener....
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.