Hallo zusammen,
ich bin neu in diesem Forum angemeldet und ein Neuling in der Java Programmierung.
Ich sitzte gerade an einem Projekt, indem ein Gruppenkalender realisiert werden soll, der auf einer 3 Schichten Architektur aufgebaut ist, d.h. einer grafischen Benutzeroberfläche, einer Applikationsogik und einer Datenbankschicht.
Ich habe nun ein Problem, bei dem ich überhaupt nicht weiter komme und hoffe, mir kann in diesem Forum geholfen werden!
Ich habe eine Benutzeroberfläche erstellt, in der sich eine JCombobox befindet, welche ich mit Personen, die in einer Datenbank angelegt sind, fülle. Dies funktioniert soweit auch.
Von dieser Klasse aus möchte ich durch eine actionPerformed - Methode eine Methode einer anderen Klasse, bzw. einer Benutzeroberfläche aufrufen, die mir die Personendaten in jTextfields ausgibt.
ci ist eine Intanz der Klasse ClientInterface, welche die Methode zum füllen der combobox definiert:
Diese Klasse nennt sich personAktualisieren und ist folgendermaßen aufgebaut:
Wenn ich nun die actionPerformed Methode der Klasse personEditierenAuswahl aufrufe, gibt mir meine IDE eine NullpointerException aus!
Ich hoffe ich habe das Problem einigermaßen verständlich formuliert und hoffe mir kann einer von euch bei meinem Problem helfen!
Danke im voraus für eure Antworten!
Gruß
Ben
ich bin neu in diesem Forum angemeldet und ein Neuling in der Java Programmierung.
Ich sitzte gerade an einem Projekt, indem ein Gruppenkalender realisiert werden soll, der auf einer 3 Schichten Architektur aufgebaut ist, d.h. einer grafischen Benutzeroberfläche, einer Applikationsogik und einer Datenbankschicht.
Ich habe nun ein Problem, bei dem ich überhaupt nicht weiter komme und hoffe, mir kann in diesem Forum geholfen werden!
Ich habe eine Benutzeroberfläche erstellt, in der sich eine JCombobox befindet, welche ich mit Personen, die in einer Datenbank angelegt sind, fülle. Dies funktioniert soweit auch.
Java:
this.person = new JComboBox();
this.person = ci.fuellComboBox_Person(this.person);
Dimension groesseBox = new Dimension(300, 25);
person.setPreferredSize(groesseBox);
constraints.gridwidth = GridBagConstraints.REMAINDER;
constraints.weightx = 1;
constraints.fill = GridBagConstraints.NONE;
editierenPanel.add(person, constraints);
Von dieser Klasse aus möchte ich durch eine actionPerformed - Methode eine Methode einer anderen Klasse, bzw. einer Benutzeroberfläche aufrufen, die mir die Personendaten in jTextfields ausgibt.
ci ist eine Intanz der Klasse ClientInterface, welche die Methode zum füllen der combobox definiert:
Java:
JComboBox fuellComboBox_Person(JComboBox wert) {
//Wenn bisher keine Verbindung hergstellt wurde, wird eine aufgebaut
if (this.verwaltung == null) {
this.initServerConnection();
}
try {
//Hole mir alle Personen durch die Verwaltung Klasse
Vector<Person> person = verwaltung.getAll_Person();
//Durchlaufe das Ergebnis
for (Person c : person) {
/**
* Erstelle ein KeyValue was den vornamen, nachnamen und die email der Person speichert
* KeyValue ist eine Hilfsklasse
*/
KeyValue item = new KeyValue(c.get_person_id() + ": " + c.get_vorname() + " " + c.get_nachname() + " " + "(" + c.get_email() + ")", String.valueOf(c.get_person_id()));
// KeyValue item = new KeyValue("ID: " + c.get_person_id() + "; Vorname: " + c.get_vorname() + "; Nachname: " + c.get_nachname(), String.valueOf(c.get_person_id()));
//Füge dieses Item in die JComboBox hinzu
wert.addItem(item);
}
} catch (RemoteException re) {
System.out.println("RemoteException");
System.out.println(re);
}
return wert;
}
Java:
public void actionPerformed(ActionEvent event){
// String ausgewaehltePerson = (String)person.getSelectedItem();
int antwort = JOptionPane.showConfirmDialog(frame, "Wollen Sie diese Person editieren?",
"", JOptionPane.YES_NO_OPTION);
if (antwort == JOptionPane.YES_OPTION) {
PersonAktualisieren PeEd = new PersonAktualisieren();
PeEd.personAktualisieren();
}
else if (antwort == JOptionPane.NO_OPTION)
frame.setVisible(false);
}
Diese Klasse nennt sich personAktualisieren und ist folgendermaßen aufgebaut:
Java:
public class PersonAktualisieren {
JButton personAktualisieren;
JButton abbrechen;
JFrame frame;
JLabel idLabel;
JLabel vornameLabel;
JLabel nachnameLabel;
JLabel emailLabel;
JLabel raumLabel;
JLabel passwortLabel;
JLabel telefonLabel;
JTextField idField;
JTextField nachnameField;
JTextField vornameField;
JTextField emailField;
JTextField raumField;
JTextField passwortField;
JTextField telefonField;
private Hashtable Person = null;
//Referenz zum ClientInterface
//private ClientInterface ci;
private String PerID;
int ID;
private ClientInterface ci = new ClientInterface();
//Konstruktor
// public PersonAktualisieren(ClientInterface ci, String email) {
// this.ci = ci;
// this.PerID = email;
// this.Person = this.ci.getPersonData(email);
// }
//public static void main(String[] args) {
// PersonAktualisieren gui = new PersonAktualisieren();
// gui.personAktualisieren();
// }
public void personAktualisieren(){
frame = new JFrame ("Person aktualisieren");
JPanel personAktualisierenPanel = new JPanel();
GridBagLayout gbl = new GridBagLayout();
personAktualisierenPanel.setLayout(gbl);
GridBagConstraints constraints = new GridBagConstraints();
idLabel = new JLabel("ID:");
constraints.insets = new Insets(9, 9, 9, 9);
constraints.anchor = GridBagConstraints.WEST;
constraints.weightx = 0;
personAktualisierenPanel.add(idLabel, constraints);
idField = new JTextField(3);
constraints.gridwidth = GridBagConstraints.REMAINDER;
constraints.weightx = 1;
constraints.fill = GridBagConstraints.NONE;
personAktualisierenPanel.add(idField, constraints);
vornameLabel = new JLabel("Vorname:");
constraints.gridwidth = 1;
constraints.weightx = 0;
constraints.fill = GridBagConstraints.NONE;
personAktualisierenPanel.add(vornameLabel, constraints);
vornameField = new JTextField(20);
this.vornameField.setText((String) this.Person.get("Vorname").toString());
constraints.gridwidth = GridBagConstraints.REMAINDER;
constraints.weightx = 1;
constraints.fill = GridBagConstraints.NONE;
personAktualisierenPanel.add(vornameField, constraints);
nachnameLabel = new JLabel("Nachname:");
constraints.gridwidth = 1;
constraints.weightx = 0;
constraints.fill = GridBagConstraints.NONE;
personAktualisierenPanel.add(nachnameLabel, constraints);
nachnameField = new JTextField(20);
constraints.gridwidth = GridBagConstraints.REMAINDER;
constraints.weightx = 1;
constraints.fill = GridBagConstraints.NONE;
personAktualisierenPanel.add(nachnameField, constraints);
telefonLabel = new JLabel("Telefon:");
constraints.gridwidth = 1;
constraints.weightx = 0;
constraints.fill = GridBagConstraints.NONE;
personAktualisierenPanel.add(telefonLabel, constraints);
telefonField = new JTextField(20);
constraints.gridwidth = GridBagConstraints.REMAINDER;
constraints.weightx = 1;
constraints.fill = GridBagConstraints.NONE;
personAktualisierenPanel.add(telefonField, constraints);
emailLabel = new JLabel("E-mail:");
constraints.gridwidth = 1;
constraints.weightx = 0;
constraints.fill = GridBagConstraints.NONE;
personAktualisierenPanel.add(emailLabel, constraints);
emailField = new JTextField(20);
constraints.gridwidth = GridBagConstraints.REMAINDER;
constraints.weightx = 1;
constraints.fill = GridBagConstraints.NONE;
personAktualisierenPanel.add(emailField, constraints);
raumLabel = new JLabel("Raum:");
constraints.gridwidth = 1;
constraints.weightx = 0;
constraints.fill = GridBagConstraints.NONE;
personAktualisierenPanel.add(raumLabel, constraints);
raumField = new JTextField(20);
constraints.gridwidth = GridBagConstraints.REMAINDER;
constraints.weightx = 1;
constraints.fill = GridBagConstraints.NONE;
personAktualisierenPanel.add(raumField, constraints);
passwortLabel = new JLabel("Passwort:");
constraints.gridwidth = 1;
constraints.weightx = 0;
constraints.fill = GridBagConstraints.NONE;
personAktualisierenPanel.add(passwortLabel, constraints);
passwortField = new JTextField(20);
constraints.gridwidth = GridBagConstraints.REMAINDER;
constraints.weightx = 1;
constraints.fill = GridBagConstraints.NONE;
personAktualisierenPanel.add(passwortField, constraints);
personAktualisieren = new JButton("aktualisieren");
constraints.insets = new Insets(56,9,0,0);
constraints.gridwidth = 1;
constraints.weightx = 0;
constraints.weighty = 0;
constraints.fill = GridBagConstraints.NONE;
personAktualisierenPanel.add(personAktualisieren, constraints);
personAktualisieren.addActionListener(new personAktualisierenListener());
abbrechen = new JButton("abbrechen");
constraints.gridwidth = GridBagConstraints.REMAINDER;
constraints.weightx = 0;
constraints.weighty = 0;
constraints.fill = GridBagConstraints.NONE;
personAktualisierenPanel.add(abbrechen, constraints);
abbrechen.addActionListener(new personabbrechenListener());
frame.getContentPane().add(personAktualisierenPanel);
frame.setSize(400, 400);
frame.setResizable(false);
frame.setVisible(true);
}
class personAktualisierenListener implements ActionListener{
int personID = Integer.parseInt(idField.getText());
public void actionPerformed(ActionEvent event){
int antwort = JOptionPane.showConfirmDialog(frame, "Wollen Sie diese Person aktualisieren?",
"", JOptionPane.YES_NO_OPTION);
if (antwort == JOptionPane.YES_OPTION) {
Person zueditierendePerson = ci.updatePerson(personID, vornameField.getText().trim(),nachnameField.getText().trim(),raumField.getText().trim(),emailField.getText().trim(),telefonField.getText().trim(),passwortField.getText().trim());
if(zueditierendePerson != null){
//Meldung erzeugen
JOptionPane.showMessageDialog(null, "Person wurde aktualisert!","Meldung", JOptionPane.OK_CANCEL_OPTION);
}
//Meldung erzeugen, für den Fall das der Passenger nicht erzeugt werden konnte.
else {
JOptionPane.showMessageDialog(null, String.format("Person wurde nicht aktualisert", event.getActionCommand()));
}
}
else if (antwort == JOptionPane.NO_OPTION)
frame.setVisible(false);
}
}
class personabbrechenListener implements ActionListener{
public void actionPerformed(ActionEvent event){
int antwort = JOptionPane.showConfirmDialog(frame, "Wollen Sie den Vorgang wirklich beenden?",
"", JOptionPane.YES_NO_OPTION);
if (antwort == JOptionPane.YES_OPTION)
frame.setVisible(false);
}
}
}
Wenn ich nun die actionPerformed Methode der Klasse personEditierenAuswahl aufrufe, gibt mir meine IDE eine NullpointerException aus!
Ich hoffe ich habe das Problem einigermaßen verständlich formuliert und hoffe mir kann einer von euch bei meinem Problem helfen!
Danke im voraus für eure Antworten!
Gruß
Ben