Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Zeig doch mal wie oder wo du "fach" übergibst. Damit kann man wenig anfangen. und was bitte ist notensamlung?
Ein Vector vielleicht??? Dann arbeite lieber mit Enumeration en = notensamlung.elements(); !
Du mußt auch erst ein Objekt Fach erzeugen. Momentan erzeugst du ein NullObjekt. Da gibts dann auch keine Methode die du aufrufen kannst.
Schreib mal in den Konstruktor des guis Fach fach = new Fach(); <- fallst du einen leeren Konstruktor erstellt hast.
Allerdings gehe ich davon aus das dein Fach ja noch gar keine Daten enthält die ausgegeben werden können.
Poste doch mal den Code vom Fach-Konstruktor und wie du es füllst.
Ansonsten würde ich dir raten dir mal die Grundlagen der Objektorientierten Programmierung zu lernen bevor du dich mit solchen Problemen rumschlägst.
Ok, dann erstelle mal so etwas ähnliches in deinem gui:
Code:
private Fach fach;
/**übergibt ein erstelltes Fach mit hoffentlich gefüllten Daten @param Fach neuFach*/
public void setFach(Fach neufach){fach = newfach;}
und dann in deiner speicher Methode:
Code:
public void speichern() {
try {
BufferedWriter myWriter =
new BufferedWriter (new FileWriter ("E:/hft-so/java/eclipse/ch.hftso.notenverwaltung/notenverwaltung.txt"));
Enumeration en = notensamlung.elements();
while(en.hasMoreElements()){
myWriter.write ((String)en.nextElement() + "\n" ) ;
}
myWriter.close();
} catch (IOException eIO) {
eIO.printStackTrace();
}
}
wir drehen uns im Kreis, ich probiers nochmals zu erklären:
also
ich möchte im GUI mit fach.save() eine Methode in der Klasse Fach aufrufen die mir dann wiederum den vector notensammlung in einer txt datei speichert!
das problem ist dass ich mit fach.save() die methode nicht erreiche und es mir eine nullpointer exception wirft.
wir drehen uns im Kreis, ich probiers nochmals zu erklären:
also
ich möchte im GUI mit fach.save() eine Methode in der Klasse Fach aufrufen die mir dann wiederum den vector notensammlung in einer txt datei speichert!
das problem ist dass ich mit fach.save() die methode nicht erreiche und es mir eine nullpointer exception wirft.
Nein du hörst nicht richtig zu!!!
Deine NullPointerException kommt daher das kein Object Fach in deinem GUI existiert. Wie soll es dann die Methode aus Fach starten können???
Du must in deinem GUI erstmal ein aktuelles Object vom Typ Fach erstellen beziehungweise dir irgendwo her besorgen. Und dann kannst du auch ganz normal speichern. Dadurch das du so wie ich das aus deinen Codeschnipseln ersehen kann aber nur mit einem NullObject arbeitest zeigt dein Zeiger ins Leere. Und im Nichts gibts nunmal keine Methode speichern()!!!
OK weil ich Urlaub habe (eigentlich) mal ganz in Ruhe.
Also irgendwo in deinem Projekt erzeugst du ein Object vom Typ Fach. Dieses füllst du dann mit den gewünschten Daten(auch irgenwie vielleicht sogar in deinem Gui). Dieses Object mußt du dann in deinem Gui bekannt machen, das machst du in dem irgendwo dieses bearbeitete Object zuweist (wie z.B.: setFach()).
Falls du dein fach sogar in deinem gui bearbeites mußt du halt nur irgenwo stehen haben fach = new Fach("irgendwas");.
Dabei muss natürlich oben immernoch und sowieso public Fach fach = null; auf public Fach fach; abgeändert werden.
Also wenn du dein Fach in einem anderen Object z.B. Frame bearbeitest musst du aus diesem heraus die beschriebene Methode setFach() aufrufen und damit die Referenz zu dem Fach weiter durchreichen.
Also kurz um dein Object aktuelles (nicht irgendein Objekt Fach) Object Fach muss in deinem Gui existieren bzw. die Referenz dazu.
Ansonsten Poste mal bitte deinen kompletten Gui-Code.