Klassen Mitgliederverwaltung programmieren

emc7kr

Mitglied
Guten Abend allerseits,

ich hoffe sehr, dass ich hier Hilfe finde, nachdem mich das Problem fast in den Wahnsinn getrieben hat.

Zum Problem:
Ich bin Leiter eines Vereins und möchte meine Mitglieder in einem Java-Tool verwalten. Ich habe abgesehen von der Klasse "GUI" und einigen "Tool-Klassen" die Klassen "Mitglieder" und "Aktionen" welche einen n zu m Beziehung haben.

Ich habe bereits der Boardsuche und Mr. Google meine Probleme anvertraut doch ich finde keine Lösung.

Zur Frage: Wie kann ich jedem Mitglied eine oder mehrere Aktionen zuweisen und diese dann sinnvoll abfragen.

Da ich das Programm darum bereits geschrieben habe und auf ~1800 Zeilen komme verzeiht mir, dass ich nur Code-Schnipsel poste:

Schnipsel aus "GUI.java":
[JAVA=52]private Mitglieder[] mitglied = new Mitglieder[30];
private Orte[] ortO = new Orte[10];
private Aktionen[] aktion = new Aktionen[100];
private DefaultComboBoxModel ort = new DefaultComboBoxModel();
private DefaultListModel mitgliederListe = new DefaultListModel();
private DefaultListModel aktionenListe = new DefaultListModel();[/code]
Die ganze "Aktionen.java":
Java:
package emc.jrk.ctrl;

import java.util.Calendar;
import java.util.Date;

/**
 * 
 * @author caraggim
 * @version 1.0
 *
 */

public class Aktionen
    {
	//Deklarieren der benötigten Variablen
	private int 			id;		//Einmalige ID einer Aktion
	private int 			ortsID;		//OrtsID aus 'emc.jrk.ctrl.Orte'
	
	private String 			name;		//Name einer Aktion
	private String 			beschreibung;	//Kurze Beschreibung einer Aktion
	
	private Calendar 		startDatum;	//Startdatum einer Aktion	
	private Calendar 		endDatum;	//Enddatum einer Aktion
	
	//Methoden
	public boolean isVorbei()
	    {
		boolean vorbei;				//Ja-Nein ob Aktion bereits vorbei ist
		Calendar heute = Calendar.getInstance();//Aktuelles Datum
		
		if(endDatum.compareTo(heute) == -1){	//Wenn das Enddatum in der Vergangenheit liegt:
		    vorbei = true;			//Aktion ist vorbei
		}
		else{					//Sonst:
		    vorbei = false;			//Aktion ist noch nicht vorbei
		}
		
		return vorbei;				//Zurückgeben der Variable
	    }
	
	//Getters und Setters der Vaiablen
	public int getId()
	    {
		return id;
	    }
	public void setId(int id)
	    {
		this.id = id;
	    }
	public int getOrtsID()
	    {
		return ortsID;
	    }
	public void setOrtsID(int ortsID)
	    {
		this.ortsID = ortsID;
	    }
	public String getName()
	    {
		return name;
	    }
	public void setName(String name)
	    {
		this.name = name;
	    }
	public String getBeschreibung()
	    {
		return beschreibung;
	    }
	public void setBeschreibung(String beschreibung)
	    {
		this.beschreibung = beschreibung;
	    }
	public Calendar getStartDatum()
	    {
		return startDatum;
	    }
	public void setStartDatum(int dd, int mm, int yyyy)
	    {
		startDatum.set(yyyy, mm, dd);
	    }
	public Calendar getEndDatum()
	    {
		return endDatum;
	    }
	public void setEndDatum(int dd, int mm, int yyyy)
	    {
		endDatum.set(yyyy, mm, dd);
	    }
	
    }
Die ganze "Mitglieder.java":
Java:
package emc.jrk.ctrl;

import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

/**
 * 
 * @author caraggim
 * @version 1.0
 *
 */

public class Mitglieder
    {
	//Deklarieren der benötigten Variablen
	private int 	id;		//Eindeutige ID des Mitglieds
	private int 	ortsID;		//OrtsID aus 'emc.jrk.ctrl.Orte'
	
	private String 	name;		//Nachname
	private String 	vorname;	//Vorname und eventuell 2.Name
	private String 	strasse;	//Straße und Hausnummer
	private String 	telefonnummer;	//Telefonnummer
	private String 	emailadresse;	//Emailadresse
	private String 	bild;		//Pfad zu Avatar-Bild
	
	private Calendar geburtsDatum = new GregorianCalendar(0001, Calendar.JANUARY, 1);	//Geburtsdatum
	private Calendar eintrittDatum = new GregorianCalendar(0001, Calendar.JANUARY, 1);	//Datum des Eintritts
	private Calendar austrittDatum = new GregorianCalendar(9999, Calendar.JANUARY, 1);	//Datum des Austritts
	
	private boolean ausgetreten = false;	//Ja-Nein ob das Mitglied ausgetreten ist

	//Setter und Getter der Variablen
	public int getId()
	    {
		return id;
	    }

	public void setId(int id)
	    {
		this.id = id;
	    }

	public int getOrtsID()
	    {
		return ortsID;
	    }

	public void setOrtsID(int ortsID)
	    {
		this.ortsID = ortsID;
	    }

	public String getName()
	    {
		return name;
	    }

	public void setName(String name)
	    {
		this.name = name;
	    }

	public String getVorname()
	    {
		return vorname;
	    }

	public void setVorname(String vorname)
	    {
		this.vorname = vorname;
	    }

	public String getStrasse()
	    {
		return strasse;
	    }

	public void setStrasse(String strasse)
	    {
		this.strasse = strasse;
	    }

	public String getTelefonnummer()
	    {
		return telefonnummer;
	    }

	public void setTelefonnummer(String telefonnummer)
	    {
		this.telefonnummer = telefonnummer;
	    }

	public String getEmailadresse()
	    {
		return emailadresse;
	    }

	public void setEmailadresse(String emailadresse)
	    {
		this.emailadresse = emailadresse;
	    }
	
	public String getBild()
	    {
		return bild;
	    }
	
	public void setBild(String bild)
	    {
		this.bild = bild;
	    }

	public Date getGeburtsDatum()
	    {
		return geburtsDatum.getTime();
	    }

	public void setGeburtsDatum(int year, int month, int date)
	    {
		geburtsDatum.set(year, month-1, date);
	    }

	public Date getEintrittDatum()
	    {
		return eintrittDatum.getTime();
	    }

	public void setEintrittDatum(int year, int month, int date)
	    {
		eintrittDatum.set(year, month-1, date);
	    }

	public Date getAustrittDatum()
	    {
		return austrittDatum.getTime();
	    }

	public void setAustrittDatum(int year, int month, int date)
	    {
		austrittDatum.set(year, month-1, date);
	    }

	public boolean isAusgetreten()
	    {
		return ausgetreten;
	    }

	public void setAusgetreten(boolean ausgetreten)
	    {
		this.ausgetreten = ausgetreten;
	    }
	
	
    }
 

Michael...

Top Contributor
Zur Frage: Wie kann ich jedem Mitglied eine oder mehrere Aktionen zuweisen und diese dann sinnvoll abfragen.
Man könnte in der Klasse Mitarbeiter eine Liste mit den dem Mitarbeiter zugewiesenen Aktionen verwalten. Oder man definiert eine neue Klasse Aufgaben/Aktionsliste in der man die Zuordnung Mitarbeiter <-> Aktion verwaltet oder ...
Hängt u.a. davon ab, was man genau vorhat und was mit "sinnvoll abfragen" gemeint ist.
 

emc7kr

Mitglied
Die erste Idee gefällt mir. Wenn du von einer Liste redest, meinst du ein Array oder?
Also in etwa so?
Java:
private Aktionen[] aktionDesMitglieds = new Aktionen[100];
Diese würde ich dann mit einer
Code:
while
-Schleife initialisieren:
Code:
aktionDesMitglieds[1] = new Aktionen();

2. Unter sinnvoll abfragen verstehen ich, die Informationen abfragen und in meinem GUI auszugeben, welches ich programmiert habe. Zum Beispiel eine Liste mit allen Aktionen, die das Selectierte Mitglied macht.
 

Michael...

Top Contributor
Also in etwa so?
Java:
private Aktionen[] aktionDesMitglieds = new Aktionen[100];
Dachte da eher an sowas wie
Code:
ArrayList<Aktion> aktionsListe = new ArrayList<Aktion>();
Diese würde ich dann mit einer
Code:
while
-Schleife initialisieren:
Code:
aktionDesMitglieds[1] = new Aktionen();
Ich denke, dass die Aktionen eher von "aussen" einem Mitglied zugewiesen werden? Oder "weiß" ein Mitglied direkt bei der Erstellung welche Aktionen relevant sind?
Code:
Mitglied mitgliedA = new Mitglied();
mitgliedA.addAktion(...);
2. Unter sinnvoll abfragen verstehen ich, die Informationen abfragen und in meinem GUI auszugeben, welches ich programmiert habe. Zum Beispiel eine Liste mit allen Aktionen, die das Selectierte Mitglied macht.
Dafür ist die erste Variante ausreichend.
 

emc7kr

Mitglied
Dachte da eher an sowas wie
Code:
ArrayList<Aktion> aktionsListe = new ArrayList<Aktion>();

Kann ich eine ArrayList in ein JList Objekt "reinladen"?
Wenn das geht, stell ich mein Projekt komplett darauf um, damit hab ich ja weniger Einschränkungen was die Anzahl an Mitglieder, Orte und Aktionen angeht...

Danke vielmals

(edit)
Hast du das mit der ArrayList und der Methode "addAktion" so gemeint?
[JAVA=34]
//Deklarieren des benötigten Objekts
private ArrayList<Aktionen> aktionenMitglied = new ArrayList<Aktionen>();[/code]
[JAVA=38]public void addAktion(){
int index = aktionenMitglied.size() + 1;
aktionenMitglied.add(index, new Aktionen());
}[/code]

(edit)
Ich habe an dem System gerade ein Problem erkannt:
Um die Daten auf einem Stand zu halten, speichere ich die Daten in eine externe Datei ab und lese diese auch beim Start wieder ein. Ungefähr in diesem Style:
Code:
id;name;vorname;ortsID;...
Soll ich dann für die neue Liste eine eigene Datei machen oder sogar für jeden User eine Datei mit allen Aktionen dieses Users? *konfused* ;(
 
Zuletzt bearbeitet:

Michael...

Top Contributor
Kann ich eine ArrayList in ein JList Objekt "reinladen"?
Wenn das geht, stell ich mein Projekt komplett darauf um, damit hab ich ja weniger Einschränkungen was die Anzahl an Mitglieder, Orte und Aktionen angeht...
Per Konstruktor übergeben geht damit nicht. Man könnte sich allerdings ein eigenes ListModel für die JList definieren. Zur Not könnte man auch mittels toArray() ein Array aus der Liste machen.
Hast du das mit der ArrayList und der Methode "addAktion" so gemeint?
[JAVA=34]
//Deklarieren des benötigten Objekts
private ArrayList<Aktionen> aktionenMitglied = new ArrayList<Aktionen>();[/code]
[JAVA=38]public void addAktion(){
int index = aktionenMitglied.size() + 1;
aktionenMitglied.add(index, new Aktionen());
}[/code]
Das mit dem Index ist nicht notwendig, da ein normals add(...) das neue Objekt am Ende der Liste anfügt. Eigentlich meinte ich:
Java:
public void addAktion(Aktion aktion){
    aktionenMitglied.add(aktion);
}
Somit kann "jeder" der Zugriff auf ein Mitglied-Objekt hat dieser eine Aktion zuweisen.
Ich habe an dem System gerade ein Problem erkannt:
Um die Daten auf einem Stand zu halten, speichere ich die Daten in eine externe Datei ab und lese diese auch beim Start wieder ein. Ungefähr in diesem Style:
id;name;vorname;ortsID;...
Soll ich dann für die neue Liste eine eigene Datei machen oder sogar für jeden User eine Datei mit allen Aktionen dieses Users?
Würde sagen das ist Geschmacksache. Eine Datei zu händeln ist vermutlich einfacher.
Noch besser wäre eventuell eine Datenbank.
 

emc7kr

Mitglied
Das mit dem Index ist nicht notwendig, da ein normals add(...) das neue Objekt am Ende der Liste anfügt. Eigentlich meinte ich:
Java:
public void addAktion(Aktion aktion){
    aktionenMitglied.add(aktion);
}
Somit kann "jeder" der Zugriff auf ein Mitglied-Objekt hat dieser eine Aktion zuweisen.
Das sieht gut aus... Ich werde es heute nicht mehr schaffen und hab morgen Prüfung, deshalb werde ich es vermutlich erst morgen Abend oder Donnerstag testen...

Wenn ich der ArrayList
Code:
aktionenMitglied
bzw. der Methode
Code:
addAktion
die Aktion "aktion" weitergebe, bekomm ich doch Probleme, wenn sich 2 Namen überschneiden? Oder bin ich einfach nur zu übermüdet um das richtig zu sehen??

Würde sagen das ist Geschmacksache. Eine Datei zu händeln ist vermutlich einfacher.
Noch besser wäre eventuell eine Datenbank.
1. Leider keine Lösung *weiter-konfused*
2. Ich würde ja Datenbanken machen, habe aber das Gefühl, dass ich dann mehr Arbeit habe und mit mehr neue Sachen angucken müsste... Nächste Woche muss ich wieder arbeiten und ich habe nicht so viel Freizeit, da ich eine Freundin und ein Kind hab... Ist doof :D

(edit)
Gute Nacht und vielen vielen Dank schonmal :D
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Programmieren als Angestellter Allgemeine Java-Themen 2
NoahPillich Navigations-App und Wegfindung selber programmieren - Erfahrungen, Ideen, Anregungen Allgemeine Java-Themen 6
M Aussagenlogik in Java Programmieren Allgemeine Java-Themen 22
B hard wrap selber programmieren Allgemeine Java-Themen 9
berserkerdq2 run-methode eines Threads so programmieren, dass 30x die Sekunde etwas ausgeführt wird. Allgemeine Java-Themen 44
L Einfache Navigations-App schnell selber Programmieren? Bitte um Ideen und Anregungen. Allgemeine Java-Themen 17
Q Java-Programmieren Allgemeine Java-Themen 1
B BOT mit Java [Eclipse] programmieren Allgemeine Java-Themen 7
kanywayne Java programmieren: Polynom Klasse Allgemeine Java-Themen 4
O wie kann ich p = s · (1 + r )^t-s programmieren? Allgemeine Java-Themen 7
N Lottowebsite programmieren mittels Java, HTML,.... Allgemeine Java-Themen 7
J Vokabeltrainer programmieren Allgemeine Java-Themen 4
S Java-Task-Management-Tool für Windows und Mac selber programmieren Allgemeine Java-Themen 4
Q Möglichkeit Online-Programmieren üben. Allgemeine Java-Themen 9
B Schach programmieren Allgemeine Java-Themen 2
S Einfaches Programm programmieren Allgemeine Java-Themen 5
F Große Datenmengen effizient programmieren Allgemeine Java-Themen 51
E Einen Bot Programmieren. Allgemeine Java-Themen 6
T Graph/Adjazenzliste programmieren Allgemeine Java-Themen 10
M Allgemeine Frage: Wie lernt man Java / Programmieren von Grund auf? Allgemeine Java-Themen 7
R Wie einen ClientBuilder / JarBuilder programmieren? Allgemeine Java-Themen 14
T Sprachsteuerung programmieren? Allgemeine Java-Themen 1
W IDEA IntelliJ Build-Management-Tool selbst programmieren Allgemeine Java-Themen 2
D Was als nächstes programmieren? Allgemeine Java-Themen 6
C Compiler programmieren Allgemeine Java-Themen 13
U Methoden Algorithmus MergeSort String [ ] array sortieren programmieren Allgemeine Java-Themen 17
H .Sh Datei ausführen programmieren Allgemeine Java-Themen 5
T Frage zu UML in Java programmieren Allgemeine Java-Themen 1
G Bot Programmieren Allgemeine Java-Themen 16
T Best Practice Eigene GUI programmieren | MouseMotion Detection Allgemeine Java-Themen 3
A Erste Schritte Die Kunst am Programmieren Allgemeine Java-Themen 20
S Captchas programmieren Allgemeine Java-Themen 6
J Java: Installer für Mods programmieren Allgemeine Java-Themen 5
J Java eigenen Button programmieren (ob Cursor im Rechteck ist oder nicht..../button pressed or not) Allgemeine Java-Themen 6
P Effizientes Programmieren - oder Windows Autostart fürs Herunterfahren Allgemeine Java-Themen 11
A Update Software programmieren Allgemeine Java-Themen 1
G Objekotorientiertes Programmieren / Lose Kopplung Allgemeine Java-Themen 5
G PC Fernbedienung programmieren Allgemeine Java-Themen 6
I Dringend nachhilfe in programmieren gesucht!!!!!!!! Allgemeine Java-Themen 1
I Dringend nachhilfe in programmieren in mannheim gesucht!!!!! Allgemeine Java-Themen 3
L COM Schnittstelle in Java programmieren Allgemeine Java-Themen 4
U BlueJ NXT Projekt programmieren Allgemeine Java-Themen 0
V Abwesenheitsliste programmieren - Ideen? Allgemeine Java-Themen 11
P KI für TicTacToe programmieren > Probleme Allgemeine Java-Themen 2
J (Java3D) Einen Faden programmieren - Logikproblem Allgemeine Java-Themen 5
M Android Programmieren Allgemeine Java-Themen 11
B Virtualisierung Programmieren Allgemeine Java-Themen 3
B Shortcut Erkennung programmieren Allgemeine Java-Themen 5
K Parallel programmieren mit ExecutorService Allgemeine Java-Themen 41
T Takuzu Spiel programmieren Allgemeine Java-Themen 4
L CSV Beziehungen programmieren Allgemeine Java-Themen 7
P wie logisch Programmieren? Allgemeine Java-Themen 6
K Programmieren anfangen. Allgemeine Java-Themen 21
J Problem mit Programmieren in Eclipse Allgemeine Java-Themen 5
N Abkürzung STRG-G zu programmieren Allgemeine Java-Themen 4
P Java auf dem Handy programmieren Allgemeine Java-Themen 16
truesoul Sudoku programmieren Allgemeine Java-Themen 23
K sauber und schön programmieren Allgemeine Java-Themen 2
X Spiele für Handys programmieren Allgemeine Java-Themen 2
J Abbuchung vom Konto programmieren Allgemeine Java-Themen 6
P Fortgeschritten Java programmieren Allgemeine Java-Themen 2
J Dymnamische Programmieren. Allgemeine Java-Themen 4
MQue Schnittstelle programmieren Allgemeine Java-Themen 2
D brauch hilfe ! bei Spiele Programmieren Allgemeine Java-Themen 5
F Autorennen programmieren Allgemeine Java-Themen 5
H Graustufe programmieren Allgemeine Java-Themen 7
M Intervall Programmieren ? Allgemeine Java-Themen 3
leifg Rekursiv mit Threads Programmieren Allgemeine Java-Themen 2
M Java Programm als Dämon Programmieren. Allgemeine Java-Themen 7
V Avatar selbst programmieren Allgemeine Java-Themen 4
M Generics - besser programmieren, Warnung umgehen Allgemeine Java-Themen 4
G Was als fortgeschrittener Anfänger programmieren? Allgemeine Java-Themen 7
S grafisch programmieren aber nicht applets Allgemeine Java-Themen 13
W Spiel für Handy, normale GUI und Web programmieren Allgemeine Java-Themen 2
P Mehrsprachig programmieren ResourceBundle Allgemeine Java-Themen 6
reibi Eclipse PlugIn selber programmieren Allgemeine Java-Themen 3
T einen SVN- oder QVCS-Client selber programmieren Allgemeine Java-Themen 2
saxman Lego Mindstorms Roboter mit Java programmieren Allgemeine Java-Themen 9
S eine farbpipette programmieren Allgemeine Java-Themen 7
V Mit Java einen Shop programmieren ? Allgemeine Java-Themen 8
M Mehrsprachig programmieren Allgemeine Java-Themen 3
S Programmieren eines Webwatchers Allgemeine Java-Themen 4
D Tainer programmieren Allgemeine Java-Themen 7

Ähnliche Java Themen

Neue Themen


Oben