Java ArrayList bestimmten Indexwert aufrufen

Rizzo

Cadet 4th Year
Registriert
Apr. 2008
Beiträge
125
Hey Leute, ich versuche mir ein wenig Java anhand eines Buches beizubringen.
Mein Problem ist folgendes: Ich möchte mehrere Messwerte eingeben und in einer ArrayList speichern. ( funktioniert) Danach frage ich in einem Textfeld ab welcher Wert bearbeitet werden soll und möchte den zu bearbeitenden Wert in einem anderen Textfeld anzeigen lassen. Doch jedes Mal wird mir nur der letzte Wert angezeigt und die ArrayList wird mit einer "size=1" angegeben. Ich hab etwas ähnliches vorher mit array gemacht und dies sollte eigentlich der simple Teil sein aber ich schein es nicht zu sehen :freak:

Code:
private void eingabe() {
        
       try {
            anzahl++;
            messwerte = new ArrayList<Integer>();
            jLEingabe.setText(anzahl + ". Messwert: ");
            messwerte.add(Integer.parseInt(jTFEingabe.getText()));            

            jLBearbeiten.setVisible(true);
            jTFBearbeiten.setVisible(true);
            BtnBearbeiten.setVisible(true);
            jlAnzeige.setVisible(true);
            BtnAuswerten.setVisible(true);
       }
       catch (NumberFormatException e) {
           JOptionPane.showMessageDialog(null, "Falsches Zahlenformat!");
       }
       jTFEingabe.setText("");
       jTFEingabe.requestFocus();
       
       for ( int i = 0; i < messwerte.size(); i++) {
           jlAnzeige.setText(jlAnzeige.getText()+messwerte+" ");
       }        
    }
Code:
private void bearbeiten() {        
                
        try {
        index = Integer.parseInt(jTFBearbeiten.getText());
        index--;
        if ((index >= 0) && (index < messwerte.size())) {
            
        // 4 möglichkeiten um den index wert auszugeben aber keine funzt..
            
        jTFSpeichern.setText(messwerte.get(index).toString());        
        
        messwert = messwerte.get(index);
        jTFSpeichern.setText(String.valueOf(messwert));
        
        jTFSpeichern.setText(String.valueOf(messwerte.get(index)));
        
        jTFSpeichern.setText(jTFSpeichern.getText()+messwerte.get(index));
        
        }
        else {
            JOptionPane.showMessageDialog(null, "Index außerhalb der Messreihe!");
        }
        
        jTFSpeichern.requestFocus();
        jTFSpeichern.selectAll();
        
        
        jLSpeichern.setVisible(true);
        jTFSpeichern.setVisible(true);
        BtnSpeichern.setVisible(true);
        BtnLoeschen.setVisible(true);
        }
        catch ( NumberFormatException e ) {
            JOptionPane.showMessageDialog(null, "Falsches Zahlenformat!");
        }       
      }

Hoffe ihr könnt mir weiterhelfen und vielen Dank im Voraus

Rizzo
 
Auf den ersten Blick würde ich sagen, es liegt daran, dass du bei jeder eingabe() eine neue ArrayList erzeugst, statt die bestehende zu erweitern.
 
Dieser Moment, wenn man beginnt sich für seine eigene Dummheit zu schämen :eek: unbezahlbar...
ich danke dir....
unglaublich wie man stunden nach einem fehler suchen kann und etwas so einfaches einfach nicht sehen will...
 
Standard beim Programmieren :)
Am besten legst du dir einfach eine Klasse an die nur Daten verwaltet.
In die Objekte der Klasse kannst du dann das vor und nacher speichern. Diese Objekte steckst du dann in die Liste.
 
Zurück
Oben