Βοήθεια με ArrayList Array και Jlist

Συζητήσεις για την Java

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
argate7
Δημοσιεύσεις: 233
Εγγραφή: 30 Σεπ 2009 02:38

Βοήθεια με ArrayList Array και Jlist

Δημοσίευση από argate7 » 03 Απρ 2011 23:00

Μάλλον δεν δουλεύει αυτό που μου έδειξες. Προσπαθώ να το πετάξω από το arraylist, στη συνέχεια να γράψω ένα νέο αρχείο που να έχει τα στοιχεία του arraylist και στο τέλος να μου εμφανίζει πάλι τα στοιχεία του νέου αρχείου. Κατάλαβες τι εννοώ?

Κώδικας: Επιλογή όλων


output = new BufferedWriter(new FileWriter("neoarxeio.txt"));
for(NewClass n: emp)
{
output.write(n);
output.newLine();
}

Αυτό χρησιμοποιώ, αλλά κάπου κάνω λάθος. Το λάθος μου γνωρίζω ότι είναι στο for-each. Μπορεί και να χρειάζεται να χρησιμοποιήσω iterator. Μπορείς να μου δώσεις τα φώτα σου πάνω σε αυτό?

argate7
Δημοσιεύσεις: 233
Εγγραφή: 30 Σεπ 2009 02:38

Βοήθεια με ArrayList Array και Jlist

Δημοσίευση από argate7 » 04 Απρ 2011 19:23

Λοιπόν φίλε, βρήκα μία λύση η οποία δεν είναι απόλυτα σωστή...

Σου δείχνω τι γράφω στον κώδικα να μου πεις τι πατάτα έχω κάνει..

Κώδικας: Επιλογή όλων

if (e.getSource() == deletebutton) {
                
                    try {
                        if (emp.size() > mylist.getSelectedIndex()) {
                        BufferedWriter output = new BufferedWriter(new FileWriter("new.txt", true));
                        emp.remove(mylist.getSelectedIndex());
                        for (Employee employee : emp) {
                            String word = employee.toString();
                            output.write(word);
                            output.newLine();
                        }
                        output.close();
                        d.update();
                        }
                    } catch (IOException ex) {
                        Logger.getLogger(deleteframe.class.getName()).log(Level.SEVERE, null, ex);
                    }
Βρίσκω 2 πράγματα τα οποία με ενοχλούν. Το πρώτο είναι ότι δεν κάνει update στο mylist. Δηλαδή διαγράφω τον δεύτερο και μου εμφανίζει : τον πρώτο, τον τρίτο, τον τρίτο. Μου εμφανίζει 2 φορές τον τρίτο. Και το δεύτερο μου πρόβλημα είναι ότι στο αρχείο που διαγράφω δεν καθαρίζει τα στοιχεία και μου κάνει το εξής : διαγράφω έναν και μου εμφανίζει κανονικά το νέο αρχείο. Πάω να διαγράψω ακόμα έναν και μου εμφανίζει τα προηγούμενα αποτελέσματα + αυτόν που έχει μείνει.

Δηλαδή...

Πρώτη διαγραφή, το αρχείο γράφει:
ονομα1,επιθετο1,1821
ονομα3,επιθετο3,1823
Δεύτερη διαγραφή, το αρχείο γράφει:
ονομα1,επιθετο1,1821
ονομα3,επιθετο3,1823
ονομα3,επιθετο3,1823

Ελπίζω να έγινα κατανοητός!! Ευχαριστώ για το χρόνο σου φίλε μου!

argate7
Δημοσιεύσεις: 233
Εγγραφή: 30 Σεπ 2009 02:38

Βοήθεια με ArrayList Array και Jlist

Δημοσίευση από argate7 » 04 Απρ 2011 19:51

Λοιπόν ένα mylist.updateUI(); ήταν αρκετό για να λύσει το πρώτο πρόβλημα. Όχι όμως και το δεύτερο. Αν έχεις κάποια λύση για αυτό, είναι ευπρόσδευκτη!

argate7
Δημοσιεύσεις: 233
Εγγραφή: 30 Σεπ 2009 02:38

Βοήθεια με ArrayList Array και Jlist

Δημοσίευση από argate7 » 05 Απρ 2011 15:02

Το πρόβλημα λύθηκε. Όλα κομπλέ!!

argate7
Δημοσιεύσεις: 233
Εγγραφή: 30 Σεπ 2009 02:38

Βοήθεια με ArrayList Array και Jlist

Δημοσίευση από argate7 » 06 Απρ 2011 15:32

Παιδιά νέο πρόβλημα..

Θέλω να επιλέξω από μία λίστα έναν υπάλληλο και πατώντας ένα κουμπί να μου εμφανίσει μία νέα σελίδα με τα textfields γεμάτα από τα στοιχεία του. Δηλαδή το όνομα, το επώνυμο και η ηλικία να είναι ήδη γραμμένα στα νέα textfields. Κάτι σαν update ας πούμε.

Στην πρώτη φόρμα στο κουμπί του "select" έχω τον παρακάτω κώδικα :

if (e.getSource() == selectbutton) {
fFrame = new updateframe(mylist.getSelectedIndex());
fFrame.setVisible(true);
setVisible(false);
}

Η νέα φόρμα λοιπόν, είναι έτσι :

newframe(int i) {
super("Στοιχεία");
JPanel panel = new JPanel(new GridLayout(10, 2));
JPanel buttonpanel = new JPanel();
JLabel lnlbl = new JLabel("Last Name :");
JTextField lntxf = new JTextField(emp.get(i).getLastname());
lntxf.setHorizontalAlignment(JTextField.LEFT);
lnlbl.setLabelFor(lntxf);
JLabel fnlbl = new JLabel("First Name :");
JTextField fntxf = new JTextField(emp.get(i).getFirstname());
fntxf.setHorizontalAlignment(JTextField.LEFT);
fnlbl.setLabelFor(fntxf);
JLabel albl = new JLabel("First Name :");
JTextField atxf = new JTextField(emp.get(i).getAge());
atxf.setHorizontalAlignment(JTextField.LEFT);
albl.setLabelFor(atxf);
.
.
.
.
.
}

Και μου πετάει Null Pointer Exception στις παρακάτω γραμμές κώδικα...

JTextField lntxf = new JTextField(emp.get(i).getLastname());
JTextField fntxf = new JTextField(emp.get(i).getFirstname());
JTextField atxf = new JTextField(emp.get(i).getAge());

Τι πρέπει να κάνω εδώ για να το διορθώσω αυτό το πρόβλημα? Δεν μπορώ να καταλάβω γιατί χτυπάει πρόβλημα εκεί.

Ευχαριστώ και πάλι για τη βοήθεια!!

Άβαταρ μέλους
virxen75
Δημοσιεύσεις: 493
Εγγραφή: 18 Φεβ 2009 00:17
Τοποθεσία: ΗΡΑΚΛΕΙΟ ΚΡΗΤΗΣ

Βοήθεια με ArrayList Array και Jlist

Δημοσίευση από virxen75 » 06 Απρ 2011 16:08

1) δεν έχεις αρχικοποιήσει το emp (το πιθανότερο)
ή
2) δεν υπάρχει η θέση i στο emp

argate7
Δημοσιεύσεις: 233
Εγγραφή: 30 Σεπ 2009 02:38

Βοήθεια με ArrayList Array και Jlist

Δημοσίευση από argate7 » 06 Απρ 2011 16:16

Του βάζω να μου τυπώσει το i και το τυπώνει μια χαρά. Είναι σωστό ανάλγοα με την επιλογή που έχω κάνει.

Άβαταρ μέλους
virxen75
Δημοσιεύσεις: 493
Εγγραφή: 18 Φεβ 2009 00:17
Τοποθεσία: ΗΡΑΚΛΕΙΟ ΚΡΗΤΗΣ

Βοήθεια με ArrayList Array και Jlist

Δημοσίευση από virxen75 » 06 Απρ 2011 16:24

argate7 έγραψε:Του βάζω να μου τυπώσει το i και το τυπώνει μια χαρά. Είναι σωστό ανάλγοα με την επιλογή που έχω κάνει.
αν δώσεις
System.out.println(emp.get(i));
δουλεύει?

argate7
Δημοσιεύσεις: 233
Εγγραφή: 30 Σεπ 2009 02:38

Βοήθεια με ArrayList Array και Jlist

Δημοσίευση από argate7 » 06 Απρ 2011 16:26

Δεν τυπώνει τίποτα, αλλά όταν κάνω αυτό.. System.out.println(i); μου τυπώνει κανονικά το i. Οπότε γνωρίζω ποιον αριθμό του index του arraylist μου τυπώνει

Άβαταρ μέλους
virxen75
Δημοσιεύσεις: 493
Εγγραφή: 18 Φεβ 2009 00:17
Τοποθεσία: ΗΡΑΚΛΕΙΟ ΚΡΗΤΗΣ

Βοήθεια με ArrayList Array και Jlist

Δημοσίευση από virxen75 » 06 Απρ 2011 16:36

βάλε ένα
System.out.println(emp);

πριν τα emp(i).get.....


λογικά θα σου τυπώσει null

argate7
Δημοσιεύσεις: 233
Εγγραφή: 30 Σεπ 2009 02:38

Βοήθεια με ArrayList Array και Jlist

Δημοσίευση από argate7 » 06 Απρ 2011 16:38

Μου τυπώνει []...

Άβαταρ μέλους
virxen75
Δημοσιεύσεις: 493
Εγγραφή: 18 Φεβ 2009 00:17
Τοποθεσία: ΗΡΑΚΛΕΙΟ ΚΡΗΤΗΣ

Βοήθεια με ArrayList Array και Jlist

Δημοσίευση από virxen75 » 06 Απρ 2011 16:54

argate7 έγραψε:Μου τυπώνει []...
η λίστα είναι αρχικοποιημένη αλλά κενή ,δεν έχει δεδομένα

Απάντηση

Επιστροφή στο “Java”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες