java GUI

hi@all
hab ein mega jvava Problem und bekomme das einfach nicht in bin total am verzweifeln

Code:
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
//die auskomentierten Sachen sind nur tests die aber leider auch nicht klappen
public class CreateStudent implements ActionListener{
	private Student p;
	private JButton JBAdd;
	private JFrame JFStudent;
	private JTextField JTFirst_name;
	private JTextField JTLast_name;
	private JTextField JTMatrickel;
	private JTextField JTSubject;
	private JTextField JTSemester;
	
	//private JFrame baseFrame;
	
	public CreateStudent() {
		p = new Student();
		JFStudent = new JFrame("Student inzufuegen");
		JFStudent.setTitle("Studenten anlegen");
		JFStudent.setLayout(new BorderLayout());
		JBAdd = new JButton("hinzufuegen");
		//baseFrame = bFrame;
		//baseFrame.setEnabled(false);
		JFStudent.setResizable(false);
		
		JPanel JPField = new JPanel(new GridLayout(5, 2));
		JLabel JLFirst_name = new JLabel("Vorname:");
		JLabel JLLast_name = new JLabel("Nachname:");
		JLabel JLMatrickel = new JLabel("Matrikel-Nr.:");
		JLabel JLSubject = new JLabel("Studienfach:");
		JLabel JLSemester = new JLabel("Semester:");
		
		JTextField JTFirst_name = new JTextField("Vorname");
		JTFirst_name.setText("Vorname");
		System.out.println(JTFirst_name.getText());
		JTextField JTLast_name  = new JTextField("Nachname");
		JTextField JTMatrickel  = new JTextField("000000");
		JTextField JTSubject    = new JTextField("Studienfach");
		JTextField JTSemester   = new JTextField("3");
		JPField.add(JLFirst_name);
		JPField.add(JTFirst_name);
		JPField.add(JLLast_name);
		JPField.add(JTLast_name);
		JPField.add(JLMatrickel);
		JPField.add(JTMatrickel);
		JPField.add(JLSubject);
		JPField.add(JTSubject);
		JPField.add(JLSemester);
		JPField.add(JTSemester);
		JBAdd.addActionListener(this);
		Container adder = JFStudent.getContentPane();
		adder.add(JBAdd, BorderLayout.SOUTH);
		adder.add(JPField, BorderLayout.CENTER);
		
		JFStudent.setSize(300, 150);
		JFStudent.setVisible(true);
		
		System.out.println("Der Konstukter");
		System.out.println(p);
		System.out.println(JTFirst_name.getText());
	}
	
	public void actionPerformed(ActionEvent e){
		System.out.println("hallo");
		System.out.println(JTFirst_name.getText());
		p.setFirstName(JTFirst_name.getText());
		p.setLastName(JTLast_name.getText());
		p.setMatrnr(Integer.parseInt(JTMatrickel.getText()));
		p.setSemnr(Integer.parseInt(JTSemester.getText()));
		p.setStudl(JTSubject.getText());
		System.out.println("p ist fertig");
		//GUI.createStudent(p);
	}
	public static void main (String [] args){
		new CreateStudent();
	}
}

also es ist eine PersonenVerwaltungsSystem (nix tolles) dieser Code schnipsel ist einfach nur ein JFrame an sich kein Problem
aber wenn ich auf den buttun "hinzufuegen" klicke kommt eine NullPointerException.
Das heist (laut java) das mein TextFeld auf das ich zugreifen will leer ist, allerdings ist es offensichtlich nicht leer!! und ich bekomme das einfach nicht hin und keiner kann mir helfen :(
 
am Studenten ist alles ok
allein der Aufruf von "System.out.println(JTFirst_name.getText());" in Zeile 66 geht schon nicht, allerdings klappt der selbe Aufruf in Zeile 36 und in 61 (also im Konstrukter) und ich hab keine Ahnung warum. Irgendwie weis das bis jetzt keiner
 
Ich bin nicht sicher, aber ändere mal Zeile 34 von
JTextField JTFirst_name = new JTextField("Vorname");
in
JTFirst_name = new JTextField("Vorname");

Ich denke du deklarierst JTFirst_name doppelt und zwar als Klassenvariable (Zeile 9) und als Methodenvariable (Zeile 34) dadurch kennt "public void actionPerformed(ActionEvent e)" nur die Klassenvariable und nicht die Methodenvariable.

odigo

PS: Diese Angaben sind ohne Gewähr (bin ein bißchen aus der Übung)
 
Hi,

1. Das ist KEIN MEGA Java Problem!
2. Variablennamen werden klein geschrieben!
3. Wo taucht der Fehler auf?
4. Warum erzeugst du mehrere instanzen einer Klasse mit ein und denselben Namen? (siehe odigo)
5. da getText() niemals eine NullPointer wirft, weil selbst wenn nichts drinsteht mindestens ein leerer String übergeben wird ist deine Instanz gleich null. Diesbezüglich schau dir mal 4. an.
6. Diese beiden Codezeilen hintereinander sind sinnlos, da Zeile zwei nurnochmal den sowieso schon gesetzten Text setzt

Code:
 JTextField JTFirst_name = new JTextField("Vorname");
JTFirst_name.setText("Vorname");
 
Servus,

also Gottzilla und odigo haben Dir das grundlegende Problem aufgezeigt, mit dieser Information müsstest Du das Programm zum laufen bekommen.

Noch was, mit welcher IDE entwickelst Du denn? Also wenn Du zum Beispiel Eclipse verwendest kannst Du das Programm im Debug Modus (Einzelschritt) bis an die Stelle
an der die Exception geworfen ausführen und dabei den Inhalt der Variablen überprüfen.

cu, c00ll00p
 
Hi@all
SOOOOORRRRRYYY @ all
natürlich, das war ein echt blöder Fehler *peinlich*
das kommt halt davon dass man kaum zum schlafen kommt ud dazu noch unter druck arbeiten muss ;)

klar ist das kein schwieriges/großes/tolles Programm aber ich hab für die ganze sache nur 3 Tage Zeit, dazu muss ich 8 Std. täglich in der Uni "rumhängen" *g* und schreibe nächste woche ja noch andere Klausuren, deshalb war ich einfach zu voreilig nochmals sorry und danke fü die mehr oder weniger freundliche Hilfe :-) Persönlichen Dank an odigo der als einziger einfach nur kurz und knapp gesagt hat wo das Problem ist anstatt noch "ewig lange" Vorwürfe zu äußern *g*

naja lange Rede kurzer Sinn, werde noch pal mal mehr drüber Nachdenken, beor ich was poste. Das war ja selbst für mich peinlich, ihr könnt den Thread auch gerne löschen :D

Aber wituzoig ist das sonst keiner bei uns den Fehler gefunden hat *g*,naja sind auch alle ziemlich müde gewesen :D

trotz alle dem thx@all für die schnelle Hilfe

@Gotzilla
natürlich soind die Zeilen sinnlos, da sind einige Zeilen Rendundant, aber ich habe einfach nur zur Testzwecken die eingefügt weil ich einfach nicht mehr weiter wusste
 
Zurück
Oben