Arraylist

Pichel

Mitglied
Hallo,


folgendes Problem wo ich gerade nicht weiter weiß.

Ich schreibe ein Programm, welches Prozesskosten berechnet. Dabei werden die zu berechnenden Daten zum einem aus einer Datei gelesen und zum anderen aus JTextfields.

Mein Problem ist nun, dass ich nicht so wirklich auf die Daten der Datein zugreifen kann. Ich wollte die Daten aus der Datei in eine Arraylist speichern. Die geschiet (dachte ich zumindestens) direkt beim Programmstart. Und zwar wie folgt:

Java:
private void readFile(){
		try {
			BufferedReader br = new BufferedReader(new FileReader(new File("/jens/DELProzessrechner/src/files/delRechner.txt")));
			String value = "";
			
			while((value=br.readLine())!=null){
				ausgabeArray.add(value);
				gfd.setFileDaten(value);
				
				//System.out.println("Wert: " + value);
			}
		} catch(FileNotFoundException e) {
			e.printStackTrace();
		}catch(IOException e2){
			e2.printStackTrace();
		}

Die Methode setFileDaten(String value) sieht so aus.

Java:
public void setFileDaten(String daten){
		list.add(daten);
	}

Die ArrayList wird außerhalb der Methode inizialisiert.

Das Problem ist nun, dass ich ein Nullpointer für diese Arraylist bekomme, wenn ich auf diese Object zugreife. Was für mich eigentlich bedeutet, dass das ArrayL. nicht existiert.

Und zwar passiert es, wenn ich über eine Button Action eine Methode aufrufe, die dieses Array verwendet.

Ich habe leider keine Ideen mehr. Gibt es eine Möglichkeit, dass Array bereits im Konstruktor zu initialisieren oder so etwas in der Richtung.

Danke schon mal.
 
Zuletzt bearbeitet:
Ich denke dass ist etwas wenig Code.
Aber zu der Frage, ob man bereits im Konstruktor eine ArrayList anlegen kann: Jaein. Also du anlegen musst du es in der entsprechenden Klasse. Initialisieren kannst du es bereits im Konstruktor
 
Hier ist der Code von allen Klassen wo die Arraylist vorkommt

Java:
package model;

import java.util.ArrayList;

public class GetFileDaten {

	ArrayList list;

	public GetFileDaten() {
		list =  new ArrayList();
		// TODO Auto-generated constructor stub
	}
	
	public void erzeugeArray(){
		
	}
	
	
	public void setFileDaten(String daten){
		list.add(daten);
	}

	public double getDatenFile(int i){
		double wert = 0;
		//double wert = Double.parseDouble(value);
		wert = Double.parseDouble((String)list.get(i));
		
		return wert;
	}

}

und...

Java:
package model;

import java.util.ArrayList;
import model.ReadWriteFile;
import model.GetFileDaten;

public class BerechneDaten {
	
	ArrayList<Double> variDaten = new ArrayList<Double>();
	GetFileDaten gfd = new GetFileDaten();
	
	double summe = 0;
	double zeitaufwand = 0;
	double kostensatz = 0;
	double temp = 0;
	
	public BerechneDaten(){
		
	}
	
	public void setDaten(double data){
		variDaten.add(data); // Anzahl Beteiligter usw. + Preise
		
	}
	
	
	
	public void getDatenAusArray(){
		for(int i = 0; i <= variDaten.size(); i++){
			variDaten.get(i);
		}
	}
	
	public void rechneVorOhneDEL(){
		
		kostensatz =  variDaten.get(3);
		
		//Formular erstellen
		zeitaufwand = gfd.getDatenFile(0);
		System.out.print(zeitaufwand);
		temp = (kostensatz * zeitaufwand)/(60*1);
		summe = temp;
		
		//Beteiligten ermitteln
		zeitaufwand = gfd.getDatenFile(1);
		temp = (kostensatz * zeitaufwand)/(60*1);
		summe = summe + temp;
		
		//Formular zusenden
		zeitaufwand = gfd.getDatenFile(2);
		temp = (kostensatz * zeitaufwand)/(60*1);
		summe = summe + temp;
		
		System.out.println("Summe: " + summe);
	}

}

und der Actionlistener wo die Probleme entstehen

Java:
	 jb.addActionListener(new ActionListener(){
				public void actionPerformed(ActionEvent e) {
					// TODO Auto-generated method stub
					buttonKlick();
					gBD.rechneVorOhneDEL();
				}
		 });
 
Ich habe jetzt eine Lösung die funktioniert. Würde nun nur gerne wissen wollen, ob diese elegant ist.

ich habe einfach auf die Arraylist ausgabenArray zugegriffen, die auch in der Methode readFile() verwendet wird.
 
Zurück