Hallo Forum,
Ich bin Anfänger im Programmieren mit Java. Ich bin gerade dabei ein Uniprojekt zu bearbeiten. Die Aufgabe ist es ein Gruppenkalender zu erstellen. Es soll jederzeit möglich sein Personen, Termine, Kalender, Kalendereinträge anlegen zu können. Wichtig bei dem Projekt ist, dass ich die 3 Schichten Datenbankschicht, Applikationschicht und Präsentationsschicht genau einhalte. Und genau dort liegt mein Problem. Zwar ist es bereits möglich mit dem von mir programmierten Code Personen anzulegen, doch ich befürchte dass es total unsauber programmiert ist, Vor allem wenn ich bereits angelegte Personen in einer Combobox anzeigen lassen will.Ich muss hierzu jedes mal in der GUI selbst eine Verbindung zur Datenbank herstellen, was ich glaube ich nicht darf. Nur leider weiß ich nicht wie ich es anders realisieren soll.
Ich poste mal meinen Code, vlt kann mir da jemand weiterhelfen.
Danke schonmal im voraus für eure Antworten.
Grüße Semih
Ich bin Anfänger im Programmieren mit Java. Ich bin gerade dabei ein Uniprojekt zu bearbeiten. Die Aufgabe ist es ein Gruppenkalender zu erstellen. Es soll jederzeit möglich sein Personen, Termine, Kalender, Kalendereinträge anlegen zu können. Wichtig bei dem Projekt ist, dass ich die 3 Schichten Datenbankschicht, Applikationschicht und Präsentationsschicht genau einhalte. Und genau dort liegt mein Problem. Zwar ist es bereits möglich mit dem von mir programmierten Code Personen anzulegen, doch ich befürchte dass es total unsauber programmiert ist, Vor allem wenn ich bereits angelegte Personen in einer Combobox anzeigen lassen will.Ich muss hierzu jedes mal in der GUI selbst eine Verbindung zur Datenbank herstellen, was ich glaube ich nicht darf. Nur leider weiß ich nicht wie ich es anders realisieren soll.
Ich poste mal meinen Code, vlt kann mir da jemand weiterhelfen.
Java:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package InterfaceGUI;
import data.*;
import java.text.ParseException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.Container.*;
import java.rmi.Naming;
import javax.swing.text.MaskFormatter;
import java.rmi.RemoteException;
import java.net.MalformedURLException;
import java.rmi.NotBoundException;
import java.util.Vector;
/**
*
*/
public class personEditierenAuswahl {
JButton editieren;
JButton abbrechen;
JFrame frame;
JLabel listelabel;
JComboBox person;
String Vorname;
String Nachname;
String Titel;
String Telefon;
String eMail;
String Passwort;
String Raum;
int ID;
public String Vorname() {
return Vorname;
}
public String Nachname() {
return Nachname;
}
public String Titel() {
return Titel;
}
public String Telefon() {
return Telefon;
}
public String eMail() {
return eMail;
}
public String Passwort() {
return Passwort;
}
public String Raum() {
return Raum;
}
public int ID() {
return ID;
}
public static void main(String[] args) {
personEditierenAuswahl gui = new personEditierenAuswahl();
gui.personAktualisieren();
}
public void personAktualisieren(){
frame = new JFrame("Person editieren");
JPanel editierenPanel = new JPanel();
GridBagLayout gbl = new GridBagLayout();
editierenPanel.setLayout(gbl);
GridBagConstraints constraints = new GridBagConstraints();
listelabel = new JLabel("Bitte wählen Sie eine gewünschte Person:");
listelabel.setFont(new Font("Arial",18,18));
constraints.insets = new Insets( 16,16,16,16 );
constraints.anchor = GridBagConstraints.WEST;
constraints.gridwidth = GridBagConstraints.REMAINDER;
constraints.weightx = 0;
editierenPanel.add(listelabel, constraints);
try {
// Zunächst benötigen wir eine Verbindung mit der Verwaltung.
Verwaltung verwaltung =
(Verwaltung)Naming.lookup("rmi:/localhost:1099/DRM");
Vector<Person> ergebnis1 = verwaltung.getAll_Person();
Vector inhalte = new Vector();
// Hier wird dem Vector 'inhalte' das Objekt Person mit den Elementen Vorname und Name
// übergeben und der Combobox 'person' hinzugefügt
for ( Person test : ergebnis1 ) {
if (test != null ) {
// Es wird überprüft ob die Person einen Titel besitzt. Trifft dies nicht zu wird dieser
// in der Combobox weggelassen.
// if (test.get_titel().equals("no title")) {
// inhalte.add(test.get_vorname() + " " + test.get_name());
// }
// else
inhalte.add(test.get_vorname()+ " " + test.get_nachname());
}
}
person = new JComboBox(inhalte);
Dimension groesseBox = new Dimension(300, 25);
person.setPreferredSize(groesseBox);
constraints.gridwidth = GridBagConstraints.REMAINDER;
constraints.weightx = 1;
constraints.fill = GridBagConstraints.NONE;
editierenPanel.add(person, constraints);
}
catch (MalformedURLException murle) {
System.out.println("MalformedURLException");
System.out.println(murle);
}
catch (RemoteException re) {
System.out.println("RemoteException");
System.out.println(re);
}
catch (NotBoundException e) {
System.out.println("NotBoundException");
System.out.println(e);
}
catch (NullPointerException np) {
System.out.println("NullPointerException");
System.out.println(np);
}
editieren = new JButton("editieren");
constraints.insets = new Insets( 56,16,0,0 );
constraints.gridwidth = 1;
constraints.weightx = 0;
constraints.weighty = 0;
constraints.fill = GridBagConstraints.NONE;
editierenPanel.add(editieren, constraints);
editieren.addActionListener(new editierenListener());
abbrechen = new JButton("abbrechen");
constraints.gridwidth = GridBagConstraints.REMAINDER;
constraints.weightx = 0;
constraints.weighty = 0;
constraints.fill = GridBagConstraints.NONE;
editierenPanel.add(abbrechen, constraints);
abbrechen.addActionListener(new abbrechenListener());
frame.getContentPane().add(editierenPanel);
//die Groeße des frames wird festgelegt
frame.setSize(450, 350);
//frame.setResizable(false);
//der frame wird sichtbar gemacht
frame.setVisible(true);
}
class editierenListener implements ActionListener{
public void actionPerformed(ActionEvent event){
String ausgewaehltePerson = (String)person.getSelectedItem();
int antwort = JOptionPane.showConfirmDialog(frame, "Wollen Sie ''" + ausgewaehltePerson + "'' editieren?",
"", JOptionPane.YES_NO_OPTION);
if (antwort == JOptionPane.YES_OPTION) {
try {
// Zunächst benötigen wir eine Verbindung mit der Verwaltung.
Verwaltung verwaltung =
(Verwaltung)Naming.lookup("rmi:/localhost:1099/DRM");
/*
* Wenn wir hier ankommen, dann besteht eine Verbinung zum Server.
* Wäre die Verbindung nicht zustande gekommen, so wäre eine Exception
* ausgeworfen worden und das Programm wäre in den entsprechenden
* Catch-Block (s.u.) gesprungen.
*/
System.out.println("Verbindung hergestellt...");
Vector<Person> ergebnis1 = verwaltung.getAll_Person();
Vector person = new Vector();
//Hier wird Jedes Objekt des Vectors auf Nachname, Vorname überprüft und mit dem
//zuvor ausgelesenen String der Combobox verglichen. Wird die entsprechende Person
//der Combobox gefunden wird von dieser die ID ausgelesen.
for ( Person test : ergebnis1 ) {
if (test != null ) {
String Name = test.get_vorname() + " " + test.get_nachname();
if (Name.equals(ausgewaehltePerson)) {
int personID = test.get_person_id();
// Hier werden die Daten der entsprechende Person aus der DB gewählt. Selektiert werden diese
// anhand der davor festgestellten ID.
Person pe = verwaltung.findbyid_Person(personID);
ID = pe.get_person_id();
Vorname = pe.get_vorname();
Nachname = pe.get_nachname();
Raum = pe.get_raum();
eMail = pe.get_email();
Telefon = pe.get_telefon();
Passwort = pe.get_passwort();
System.out.println(ID + Vorname + Nachname + Raum + eMail + Telefon + Passwort);
break;
}
}
}
//Es wird die enstprechende Maske der Person aufgerufen um die Daten zu ändern oder aktualisieren
personAktualisieren PeEd = new personAktualisieren();
PeEd.personAktualisieren();
PeEd.vornameField.setText(Vorname);
PeEd.nachnameField.setText(Nachname);
PeEd.raumField.setText(Raum);
PeEd.emailField.setText(eMail);
PeEd.telefonField.setText(Telefon);
PeEd.passwortField.setText(Passwort);
PeEd.idField.setText(ID+"");
}
catch (MalformedURLException murle) {
System.out.println("MalformedURLException");
System.out.println(murle);
}
catch (RemoteException re) {
System.out.println("RemoteException");
System.out.println(re);
}
catch (NotBoundException e) {
System.out.println("NotBoundException");
System.out.println(e);
}
catch (NullPointerException np) {
System.out.println("NullPointerException");
System.out.println(np);
}
// JOptionPane.showMessageDialog(frame,"Person angelegt!");
// frame.setVisible(false);
}
else if (antwort == JOptionPane.NO_OPTION)
frame.setVisible(false);
}
}
Danke schonmal im voraus für eure Antworten.
Grüße Semih
Zuletzt bearbeitet von einem Moderator: