3rd Code Sample contains the error - how to solve?Referenz auf Objekt, das als Parameter
übertragen wurde Im folgenden Code habe ich eine Methode namens "Generator" generiert. Diese Methode empfängt ein JTextField und ein JLabel als Parameter.
Es generiert individuelle JPanels und fügt sie auf ein anderes JPanel (das mit dem Border "Vermieter"). Das Ergebnis wie dieses (rot markiert) aussehen sollte:
http://imageshack.us/photo/my-images/853/stammdateneraffsenguibe.png/
hier habe ich die die JTextFields als Felder am Instanziierung:
private JTextField txtplzvermieter;
private JTextField txtemailvermieter;
private JTextField txtgeburtsdatumvermieter;
private JTextField txthandyvermieter;
private JTextField txtidvermieter;
private JTextField txtnamevermieter;
private JTextField txtortvermieter;
private JTextField txtstrassevermieter;
private JTextField txttelefonvermieter;
private JTextField txtvornamevermieter;
hier ich meine Methode nenne, die ich oben
beschrieben public void vermieterPanel(JPanel verPanel){
verPanel.add(generator("ID", txtidvermieter));
verPanel.add(generator("Name", txtnamevermieter));
verPanel.add(generator("Vorname", txtvornamevermieter));
verPanel.add(generator("Straße", txtstrassevermieter));
verPanel.add(generator("PLZ", txtplzvermieter));
verPanel.add(generator("Ort", txtortvermieter));
verPanel.add(generator("Geburtsdatum", txtgeburtsdatumvermieter));
verPanel.add(generator("Telefon", txttelefonvermieter));
verPanel.add(generator("Handy", txthandyvermieter));
verPanel.add(generator("E-Mail", txtemailvermieter));
und hier ist die Methode Generator, die den Fehler enthält:
public JPanel generator(String lableText, JTextField s){ // generiert ein Panel mit einer Zeile aus lable + TextFeld
JPanel gens = new JPanel();
JLabel lable = new JLabel(lableText);
lable.setPreferredSize(new Dimension(100,25));
s = new JTextField();
s.setPreferredSize(new Dimension(200, 25));
gens.add(lable);
gens.add(s);
return gens;
}
später habe ich keinen Hinweis auf meine TeftFields mit .getText();
bekommen kann, weil ich einen Verweis auf eine neue JTextField-Objekt hier s = new JTextField();
erstellt haben, wenn ich die Zeile entfernen, um meine Objekte zugreifen ich eine Null-Zeiger-Ausnahme.
Was mache ich falsch?
Whops. Vergessen Sie zu erwähnen, dass Sie eine Methode initComponents aufrufen, die auf die JTextFields verweist. Auch wenn ich die JTextFields wie folgt deklariere: private JTextField txtplzvermieter = new JTextField(); private JTextField txtemailvermieter = new JTextField(); private JTextField txtgeburtsdatumvermieter = new JTextField(); private JTextField txthandyvermieter = new JTextField(); private JTextField txtidvermieter = neue JTextField(); Ich bekomme immer noch den gleichen NullPointer – RCK69
Debug der Code und moniter Ihr Feld an der Stelle des Eingangs des Generators und sehen was passiert ist – GingerHead
THX! Als ich debuggte, sah ich, dass die Generator() - Methode in Ordnung war! Der Fehler war hier: mieterPanel (MietPanel); mieterPanel (mietObjektPanel); Die zweite Zeile verursachte den Fehler, weil "mietObjektPanel" nur ein paar zufällige Sachen enthielt (was den Nullzeiger verursachte) und fügte es mieterPanel statt eines neuen Panel ... hinzu, als ich ein neues Panel erstellte und das mietObjektPanel mit dem Generator erstellte() -Methode Es funktionierte wie ein Zauber. Niemals den Debugger benutzt, bevor ich eine neue Fähigkeit gelernt habe - thx – RCK69