Gruppenkalender erstellen

semih37

Neues Mitglied
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.

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:
M

Marcinek

Gast
Ich weiß nicht, wie man hier helfen soll.

Hier ist quasi alles so, wie es nicht sein sollte. ;(

Lese bitte nach, wie ein MVC muster aussieht.
 

Templarthelast

Bekanntes Mitglied
Du solltest dich an allgemeine Code Conventions halten. d.h. Variablennamen in lowerCamelCase, Klassen, Interfaces, Enums in UpperCamelCase und Konstanten komplett GROSS. Du benutzt schon eine IDE und solltest deshalb auch das Freature Generierung der Getter und Setter nutzen und deine Getterfunktionen nicht mit dem Variablennamen benennst sondern getVariablenName.

gbl ist keine allgemeingültige Abkürzung und du solltest stattdessen layout bzw. gridBagLayout verwenden, um Verwirrung zu vermeiden. Auch hier hilft dir deine IDE.

Anstatt den Umweg über ein System.out bei Exceptionausgabe zu geben, kann man auch sowas machen:
Java:
try{
//
}catch(Exception e) {
e.printStackTrace();
}
Der Vorteil hierbei liegt, dass die Ausgabe über den Fehlerkanal anstatt dem normalen Ausgabekanal ausgeben und wird deshalb auch bei dir in einer anderen Farbe angezeigt.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Zrebna Testkonzept erstellen - Verständnisschwierigkeiten Allgemeine Java-Themen 6
dokan wie kann ich eine funktionierende Suchleiste erstellen Allgemeine Java-Themen 1
Thomasneuling Java Jar datei erstellen, von Projekt, dass auch Javafx Dateien, FXML Dateien und CSS Dateien, sowie Bilder enthält? Allgemeine Java-Themen 14
berserkerdq2 SceneBuilder GUI erstellt, nun muss ich noch ein Polygon erstellen, ist die Connection möglich? Allgemeine Java-Themen 3
berserkerdq2 Was heißt es mit FXML Listener zu setzen ind Buttons zu erstellen? Allgemeine Java-Themen 6
C Probleme beim Erstellen eines runnable-jar files Allgemeine Java-Themen 1
D Open Source Library zum erstellen von PDFs Allgemeine Java-Themen 1
A Java Programm erstellen hilfe Allgemeine Java-Themen 10
J Power Point erstellen inklusive Diagramm Allgemeine Java-Themen 12
F IDEA IntelliJ Java Songliste erstellen Allgemeine Java-Themen 6
N Tree erstellen Allgemeine Java-Themen 8
berserkerdq2 Threads, wie genau läuft das in Java ab? (Ich kann Threads erstellen und nutzen, nur das Verständnis) Allgemeine Java-Themen 6
berserkerdq2 Kann keine Labels erstellen, was ist hier syntaktisch falsch Allgemeine Java-Themen 5
_user_q Verknüpfung einer .jar-Datei (liegt z. B. auf dem Desktop) im Autostart-Ordner erstellen? Allgemeine Java-Themen 20
stormyark Problem beim Klassen erstellen Allgemeine Java-Themen 1
A Trace-Tabelle erstellen Allgemeine Java-Themen 3
M Excel Datei Erstellen Allgemeine Java-Themen 2
OnDemand Erstellen von Quartz Jobs pro Aufgabe oder zusammenfassen Allgemeine Java-Themen 7
H Matrix ohne Array erstellen Allgemeine Java-Themen 9
R Geometry erstellen die abhängig von Variablen ist Allgemeine Java-Themen 6
Gaudimagspam Skip Liste erstellen in Java Allgemeine Java-Themen 3
Avalon DTO aus mehrere Entitäten erstellen Allgemeine Java-Themen 5
Kirby.exe Distanz Map für die Distanztransformation erstellen Allgemeine Java-Themen 1
Avalon Data Transfer Objekte aus Datenbank erstellen Allgemeine Java-Themen 8
M Registry Autostart Eintrag mit Java erstellen (über Windows cmd) Allgemeine Java-Themen 7
B .txt Datei erstellen und auslesen bzw. schreiben Allgemeine Java-Themen 6
M Java 2D Array für ein Grid erstellen ? Allgemeine Java-Themen 2
B Datei/Ordner auf Server zugreifen/erstellen Allgemeine Java-Themen 2
T Objekt mit String und Int aus TxT Datei erstellen Allgemeine Java-Themen 23
M Rectangle mit Java erstellen? Allgemeine Java-Themen 9
G Fläche erstellen mit Entfernungen Allgemeine Java-Themen 1
E Eigenen "Aufzählungstyp" erstellen - mit enum ? Allgemeine Java-Themen 18
T Multithreading: Wie viele Threads sollte ich erstellen? Allgemeine Java-Themen 12
B Rangliste erstellen Allgemeine Java-Themen 13
D 2,3-Baum rekursiv erstellen Allgemeine Java-Themen 20
D Datentypen 2-3 Baum erstellen mit geordnetem int-array Allgemeine Java-Themen 0
L SQL Datei in Eclipse erstellen Allgemeine Java-Themen 3
J Datenstruktur für eine Map erstellen Allgemeine Java-Themen 2
J File in Package erstellen & lesen mit Programmstart in externe Projekt Allgemeine Java-Themen 3
E Erstellen einer Liste mit einer maximalen Menge an Elementen Allgemeine Java-Themen 13
E Ts3API Subchannel erstellen und rein moven !! Allgemeine Java-Themen 0
J Eigene Api erstellen und dann auch verwenden - Ordnerstruktur Allgemeine Java-Themen 1
S GetMethode erstellen mit Hilfe von Parametern Allgemeine Java-Themen 9
T 2D-Grafik Chart als Image erstellen Allgemeine Java-Themen 3
I Fehler beim Ant-Package erstellen mit Java 9 Allgemeine Java-Themen 1
N Bei Mouse Events nicht mehrere Objekte erstellen Allgemeine Java-Themen 13
S Compiler-Fehler IntelliJ Projektdatei lässt sich nicht erstellen. Allgemeine Java-Themen 15
M 2D Array mit unterschiedlichen Längen erstellen und befüllen Allgemeine Java-Themen 11
E Swing Buttons auf knopfdruck(anderer Button) erstellen Allgemeine Java-Themen 6
S TestNG Eclipse: Reporting erstellen/ verändern Allgemeine Java-Themen 0
F .jar erstellen und starten Allgemeine Java-Themen 15
M Array aus Thread Objekten erstellen Allgemeine Java-Themen 2
N 1000 MQTT Messages die Sekunde - 1000 Threads erstellen ? Allgemeine Java-Themen 10
Tommy Nightmare Klassen Globale Klassen erstellen Allgemeine Java-Themen 7
K Datei (CSV-ähnlich) in Java einlesen & mit teil der Daten Graphen erstellen Allgemeine Java-Themen 9
S Maven Jars dynamisch laden / Plugin-Struktur erstellen Allgemeine Java-Themen 14
T 32-Bit Applikationen mit Eclipse erstellen Allgemeine Java-Themen 4
R Input/Output RTF erstellen? Allgemeine Java-Themen 2
G Liste zwischen zwei Kalenderdaten erstellen Allgemeine Java-Themen 3
S Klassen Klassen "virtuell" erstellen Allgemeine Java-Themen 5
P mehrer Verschiedene Objekte in einer Klasse erstellen. Allgemeine Java-Themen 4
M Dokument erstellen Allgemeine Java-Themen 0
S Java API für GitHub erstellen Allgemeine Java-Themen 14
T Ant Jar Datei per Ant in Eclipse erstellen Allgemeine Java-Themen 2
4a61766120617274697374 Hintergrundjobs(tasks) in Java erstellen Allgemeine Java-Themen 3
K Eigene API erstellen? Allgemeine Java-Themen 13
N Benutzeroberfläche erstellen Allgemeine Java-Themen 5
Thallius Eigenes Message Center erstellen Allgemeine Java-Themen 3
perlenfischer1984 Mehrere Komponenten erstellen Allgemeine Java-Themen 3
B jni - Headerdatei erstellen Allgemeine Java-Themen 3
Neumi5694 Operatoren regEx für das Erstellen eines Strings verwenden Allgemeine Java-Themen 3
I Methoden Schnelle Hilfe benötigt - Kleines Video/Slideshow aus mehreren Bildern erstellen Allgemeine Java-Themen 3
B automatisch benannte arrays erstellen Allgemeine Java-Themen 9
F URI-Scheme mit Java unter MacOS erstellen? Allgemeine Java-Themen 0
S Mit Generics Klasse erstellen die selbst T erweitert..? Allgemeine Java-Themen 4
J Java Software Compare Files und Neue File erstellen Allgemeine Java-Themen 0
M Textfile erstellen Allgemeine Java-Themen 11
L Wie kann ich einen Keystore aus existierenden Zertifikaten erstellen? Allgemeine Java-Themen 1
K Fehler beim erstellen von .jar Datei Allgemeine Java-Themen 3
D Ordner auf Desktop erstellen(Pc unabhängig) Allgemeine Java-Themen 5
T Dll erstellen und einbinden Allgemeine Java-Themen 1
M Exceltabelle in Java erstellen und Werte einlesen Allgemeine Java-Themen 32
P Eigenstehende *.exe Datei erstellen Allgemeine Java-Themen 15
R Test Umgebung für Datenbank erstellen, was braucht es? Allgemeine Java-Themen 14
B MySQL Eintrag erstellen Allgemeine Java-Themen 3
Thallius PDF von einem BufferedImage erstellen Allgemeine Java-Themen 1
M Zwei unterschiedliche JAR Dateien mit ANT erstellen Allgemeine Java-Themen 8
3 Backup von h2-Datenbank-Datei erstellen Allgemeine Java-Themen 6
S ImageMap erstellen Allgemeine Java-Themen 1
A Spielemap erstellen Allgemeine Java-Themen 2
F URI Schema in Linux erstellen? Allgemeine Java-Themen 3
P Matrix erstellen Allgemeine Java-Themen 1
C Ein Array mit der Größe von 1 KB erstellen Allgemeine Java-Themen 3
A Daten in Formularen/Vorlagen erstellen und ausdrucken Allgemeine Java-Themen 3
GianaSisters Apache POI - Hyperlink erstellen Allgemeine Java-Themen 0
Zettelkasten Vektor mit Koordinaten erstellen Allgemeine Java-Themen 2
D Grafisches Frontend zu einem Java Prozess erstellen Allgemeine Java-Themen 0
U Screenshot erstellen und speichern Allgemeine Java-Themen 6
S Zur Laufzeit Klasse mit einer anzahl von X Objekten erstellen Allgemeine Java-Themen 5
OnDemand Programminstallation erstellen Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben