forked from IF-LK-2020/stundenplan
Datenbank fertiggestellt
This commit is contained in:
parent
20c130ddad
commit
eac089bb6e
Binary file not shown.
|
@ -0,0 +1,19 @@
|
|||
#BlueJ class context
|
||||
comment0.target=DatabaseConnector
|
||||
comment0.text=\r\n\ <p>\r\n\ Materialien\ zu\ den\ zentralen\ NRW-Abiturpruefungen\ im\ Fach\ Informatik\ ab\ 2018\r\n\ </p>\r\n\ <p>\r\n\ Klasse\ DatabaseConnector\r\n\ </p>\r\n\ <p>\r\n\ Ein\ Objekt\ der\ Klasse\ DatabaseConnector\ ermoeglicht\ die\ Abfrage\ und\ Manipulation\ \r\n\ einer\ SQLite-Datenbank.\ \r\n\ Beim\ Erzeugen\ des\ Objekts\ wird\ eine\ Datenbankverbindung\ aufgebaut,\ so\ dass\ \r\n\ anschlie\u00DFend\ SQL-Anweisungen\ an\ diese\ Datenbank\ gerichtet\ werden\ koennen.\r\n\ </p>\r\n\ \r\n\ @author\ Qualitaets-\ und\ UnterstuetzungsAgentur\ -\ Landesinstitut\ fuer\ Schule\r\n\ @version\ 2016-01-24\r\n
|
||||
comment1.params=pIP\ pPort\ pDatabase\ pUsername\ pPassword
|
||||
comment1.target=DatabaseConnector(java.lang.String,\ int,\ java.lang.String,\ java.lang.String,\ java.lang.String)
|
||||
comment1.text=\r\n\ Ein\ Objekt\ vom\ Typ\ DatabaseConnector\ wird\ erstellt,\ und\ eine\ Verbindung\ zur\ Datenbank\ \r\n\ wird\ aufgebaut.\ Mit\ den\ Parametern\ pIP\ und\ pPort\ werden\ die\ IP-Adresse\ und\ die\ \r\n\ Port-Nummer\ uebergeben,\ unter\ denen\ die\ Datenbank\ mit\ Namen\ pDatabase\ zu\ erreichen\ ist.\ \r\n\ Mit\ den\ Parametern\ pUsername\ und\ pPassword\ werden\ Benutzername\ und\ Passwort\ fuer\ die\ \r\n\ Datenbank\ uebergeben.\r\n
|
||||
comment2.params=pSQLStatement
|
||||
comment2.target=void\ executeStatement(java.lang.String)
|
||||
comment2.text=\r\n\ Der\ Auftrag\ schickt\ den\ im\ Parameter\ pSQLStatement\ enthaltenen\ SQL-Befehl\ an\ die\ \r\n\ Datenbank\ ab.\ \r\n\ Handelt\ es\ sich\ bei\ pSQLStatement\ um\ einen\ SQL-Befehl,\ der\ eine\ Ergebnismenge\ \r\n\ liefert,\ so\ kann\ dieses\ Ergebnis\ anschlie\u00DFend\ mit\ der\ Methode\ getCurrentQueryResult\ \r\n\ abgerufen\ werden.\r\n
|
||||
comment3.params=
|
||||
comment3.target=QueryResult\ getCurrentQueryResult()
|
||||
comment3.text=\r\n\ Die\ Anfrage\ liefert\ das\ Ergebnis\ des\ letzten\ mit\ der\ Methode\ executeStatement\ an\ \r\n\ die\ Datenbank\ geschickten\ SQL-Befehls\ als\ Ob-jekt\ vom\ Typ\ QueryResult\ zurueck.\r\n\ Wurde\ bisher\ kein\ SQL-Befehl\ abgeschickt\ oder\ ergab\ der\ letzte\ Aufruf\ von\ \r\n\ executeStatement\ keine\ Ergebnismenge\ (z.B.\ bei\ einem\ INSERT-Befehl\ oder\ einem\ \r\n\ Syntaxfehler),\ so\ wird\ null\ geliefert.\ \ \r\n
|
||||
comment4.params=
|
||||
comment4.target=java.lang.String\ getErrorMessage()
|
||||
comment4.text=\r\n\ Die\ Anfrage\ liefert\ null\ oder\ eine\ Fehlermeldung,\ die\ sich\ jeweils\ auf\ die\ letzte\ zuvor\ ausgefuehrte\ \r\n\ Datenbankoperation\ bezieht.\r\n
|
||||
comment5.params=
|
||||
comment5.target=void\ close()
|
||||
comment5.text=\r\n\ Die\ Datenbankverbindung\ wird\ geschlossen.\r\n
|
||||
numComments=6
|
Binary file not shown.
|
@ -0,0 +1,22 @@
|
|||
#BlueJ class context
|
||||
comment0.target=QueryResult
|
||||
comment0.text=\r\n\ <p>\r\n\ Materialien\ zu\ den\ zentralen\ NRW-Abiturpruefungen\ im\ Fach\ Informatik\ ab\ 2018\r\n\ </p>\r\n\ <p>\r\n\ Klasse\ QueryResult\r\n\ </p>\r\n\ <p>\r\n\ Ein\ Objekt\ der\ Klasse\ QueryResult\ stellt\ die\ Ergebnistabelle\ einer\ Datenbankanfrage\ mit\ Hilfe\ \r\n\ der\ Klasse\ DatabaseConnector\ dar.\ Objekte\ dieser\ Klasse\ werden\ nur\ von\ der\ Klasse\ DatabaseConnector\ erstellt.\ \r\n\ Die\ Klasse\ verfuegt\ ueber\ keinen\ oeffentlichen\ Konstruktor.\r\n\ </p>\r\n\ \r\n\ @author\ Qualitaets-\ und\ UnterstuetzungsAgentur\ -\ Landesinstitut\ fuer\ Schule\r\n\ @version\ 2015-01-31\r\n
|
||||
comment1.params=pData\ pColumnNames\ pColumnTypes
|
||||
comment1.target=QueryResult(java.lang.String[][],\ java.lang.String[],\ java.lang.String[])
|
||||
comment1.text=\r\n\ Paketinterner\ Konstruktor.\r\n
|
||||
comment2.params=
|
||||
comment2.target=java.lang.String[][]\ getData()
|
||||
comment2.text=\r\n\ Die\ Anfrage\ liefert\ die\ Eintraege\ der\ Ergebnistabelle\ als\ zweidimensionales\ Feld\r\n\ vom\ Typ\ String.\ Der\ erste\ Index\ des\ Feldes\ stellt\ die\ Zeile\ und\ der\ zweite\ die\ \r\n\ Spalte\ dar\ (d.h.\ Object[zeile][spalte]).\r\n
|
||||
comment3.params=
|
||||
comment3.target=java.lang.String[]\ getColumnNames()
|
||||
comment3.text=\r\n\ Die\ Anfrage\ liefert\ die\ Bezeichner\ der\ Spalten\ der\ Ergebnistabelle\ als\ Feld\ vom\ \r\n\ Typ\ String\ zurueck.\r\n
|
||||
comment4.params=
|
||||
comment4.target=java.lang.String[]\ getColumnTypes()
|
||||
comment4.text=\r\n\ Die\ Anfrage\ liefert\ die\ Typenbezeichnung\ der\ Spalten\ der\ Ergebnistabelle\ als\ Feld\ \r\n\ vom\ Typ\ String\ zurueck.\ Die\ Bezeichnungen\ entsprechen\ den\ Angaben\ in\ der\ MySQL-Datenbank.\r\n
|
||||
comment5.params=
|
||||
comment5.target=int\ getRowCount()
|
||||
comment5.text=\r\n\ Die\ Anfrage\ liefert\ die\ Anzahl\ der\ Zeilen\ der\ Ergebnistabelle\ als\ Integer.\r\n
|
||||
comment6.params=
|
||||
comment6.target=int\ getColumnCount()
|
||||
comment6.text=\r\n\ Die\ Anfrage\ liefert\ die\ Anzahl\ der\ Spalten\ der\ Ergebnistabelle\ als\ Integer.\r\n
|
||||
numComments=7
|
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,19 @@
|
|||
#BlueJ class context
|
||||
comment0.target=Queue
|
||||
comment0.text=\r\n\ <p>\r\n\ Materialien\ zu\ den\ zentralen\ NRW-Abiturpruefungen\ im\ Fach\ Informatik\ ab\ 2018\r\n\ </p>\r\n\ <p>\r\n\ Generische\ Klasse\ Queue<ContentType>\r\n\ </p>\r\n\ <p>\r\n\ Objekte\ der\ generischen\ Klasse\ Queue\ (Warteschlange)\ verwalten\ beliebige\r\n\ Objekte\ vom\ Typ\ ContentType\ nach\ dem\ First-In-First-Out-Prinzip,\ d.h.,\ das\r\n\ zuerst\ abgelegte\ Objekt\ wird\ als\ erstes\ wieder\ entnommen.\ Alle\ Methoden\ haben\r\n\ eine\ konstante\ Laufzeit,\ unabhaengig\ von\ der\ Anzahl\ der\ verwalteten\ Objekte.\r\n\ </p>\r\n\ \r\n\ @author\ Qualitaets-\ und\ UnterstuetzungsAgentur\ -\ Landesinstitut\ fuer\ Schule\r\n\ @version\ Generisch_02\ 2014-02-21\r\n
|
||||
comment1.params=
|
||||
comment1.target=Queue()
|
||||
comment1.text=\r\n\ Eine\ leere\ Schlange\ wird\ erzeugt.\ \r\n\ Objekte,\ die\ in\ dieser\ Schlange\ verwaltet\ werden,\ muessen\ vom\ Typ\r\n\ ContentType\ sein.\r\n
|
||||
comment2.params=
|
||||
comment2.target=boolean\ isEmpty()
|
||||
comment2.text=\r\n\ Die\ Anfrage\ liefert\ den\ Wert\ true,\ wenn\ die\ Schlange\ keine\ Objekte\ enthaelt,\ \r\n\ sonst\ liefert\ sie\ den\ Wert\ false.\r\n\ \r\n\ @return\ true,\ falls\ die\ Schlange\ leer\ ist,\ sonst\ false\r\n
|
||||
comment3.params=pContent
|
||||
comment3.target=void\ enqueue(java.lang.Object)
|
||||
comment3.text=\r\n\ Das\ Objekt\ pContentType\ wird\ an\ die\ Schlange\ angehaengt.\ \r\n\ Falls\ pContentType\ gleich\ null\ ist,\ bleibt\ die\ Schlange\ unveraendert.\r\n\ \r\n\ @param\ pContent\r\n\ \ \ \ \ \ \ \ \ \ \ \ das\ anzuhaengende\ Objekt\ vom\ Typ\ ContentType\r\n
|
||||
comment4.params=
|
||||
comment4.target=void\ dequeue()
|
||||
comment4.text=\r\n\ Das\ erste\ Objekt\ wird\ aus\ der\ Schlange\ entfernt.\ \r\n\ Falls\ die\ Schlange\ leer\ ist,\ wird\ sie\ nicht\ veraendert.\r\n
|
||||
comment5.params=
|
||||
comment5.target=java.lang.Object\ front()
|
||||
comment5.text=\r\n\ Die\ Anfrage\ liefert\ das\ erste\ Objekt\ der\ Schlange.\ \r\n\ Die\ Schlange\ bleibt\ unveraendert.\ \r\n\ Falls\ die\ Schlange\ leer\ ist,\ wird\ null\ zurueckgegeben.\r\n\r\n\ @return\ das\ erste\ Objekt\ der\ Schlange\ vom\ Typ\ ContentType\ oder\ null,\r\n\ \ \ \ \ \ \ \ \ falls\ die\ Schlange\ leer\ ist\r\n
|
||||
numComments=6
|
284
Queue.java
284
Queue.java
|
@ -1,142 +1,142 @@
|
|||
/**
|
||||
* <p>
|
||||
* Materialien zu den zentralen NRW-Abiturpruefungen im Fach Informatik ab 2018
|
||||
* </p>
|
||||
* <p>
|
||||
* Generische Klasse Queue<ContentType>
|
||||
* </p>
|
||||
* <p>
|
||||
* Objekte der generischen Klasse Queue (Warteschlange) verwalten beliebige
|
||||
* Objekte vom Typ ContentType nach dem First-In-First-Out-Prinzip, d.h., das
|
||||
* zuerst abgelegte Objekt wird als erstes wieder entnommen. Alle Methoden haben
|
||||
* eine konstante Laufzeit, unabhaengig von der Anzahl der verwalteten Objekte.
|
||||
* </p>
|
||||
*
|
||||
* @author Qualitaets- und UnterstuetzungsAgentur - Landesinstitut fuer Schule
|
||||
* @version Generisch_02 2014-02-21
|
||||
*/
|
||||
public class Queue<ContentType> {
|
||||
|
||||
/* --------- Anfang der privaten inneren Klasse -------------- */
|
||||
|
||||
private class QueueNode {
|
||||
|
||||
private ContentType content = null;
|
||||
private QueueNode nextNode = null;
|
||||
|
||||
/**
|
||||
* Ein neues Objekt vom Typ QueueNode<ContentType> wird erschaffen.
|
||||
* Der Inhalt wird per Parameter gesetzt. Der Verweis ist leer.
|
||||
*
|
||||
* @param pContent das Inhaltselement des Knotens vom Typ ContentType
|
||||
*/
|
||||
public QueueNode(ContentType pContent) {
|
||||
content = pContent;
|
||||
nextNode = null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Der Verweis wird auf das Objekt, das als Parameter uebergeben wird,
|
||||
* gesetzt.
|
||||
*
|
||||
* @param pNext der Nachfolger des Knotens
|
||||
*/
|
||||
public void setNext(QueueNode pNext) {
|
||||
nextNode = pNext;
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert das naechste Element des aktuellen Knotens.
|
||||
*
|
||||
* @return das Objekt vom Typ QueueNode, auf das der aktuelle Verweis zeigt
|
||||
*/
|
||||
public QueueNode getNext() {
|
||||
return nextNode;
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert das Inhaltsobjekt des Knotens vom Typ ContentType.
|
||||
*
|
||||
* @return das Inhaltsobjekt des Knotens
|
||||
*/
|
||||
public ContentType getContent() {
|
||||
return content;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/* ----------- Ende der privaten inneren Klasse -------------- */
|
||||
|
||||
private QueueNode head;
|
||||
private QueueNode tail;
|
||||
|
||||
/**
|
||||
* Eine leere Schlange wird erzeugt.
|
||||
* Objekte, die in dieser Schlange verwaltet werden, muessen vom Typ
|
||||
* ContentType sein.
|
||||
*/
|
||||
public Queue() {
|
||||
head = null;
|
||||
tail = null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Die Anfrage liefert den Wert true, wenn die Schlange keine Objekte enthaelt,
|
||||
* sonst liefert sie den Wert false.
|
||||
*
|
||||
* @return true, falls die Schlange leer ist, sonst false
|
||||
*/
|
||||
public boolean isEmpty() {
|
||||
return head == null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Das Objekt pContentType wird an die Schlange angehaengt.
|
||||
* Falls pContentType gleich null ist, bleibt die Schlange unveraendert.
|
||||
*
|
||||
* @param pContent
|
||||
* das anzuhaengende Objekt vom Typ ContentType
|
||||
*/
|
||||
public void enqueue(ContentType pContent) {
|
||||
if (pContent != null) {
|
||||
QueueNode newNode = new QueueNode(pContent);
|
||||
if (this.isEmpty()) {
|
||||
head = newNode;
|
||||
tail = newNode;
|
||||
} else {
|
||||
tail.setNext(newNode);
|
||||
tail = newNode;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Das erste Objekt wird aus der Schlange entfernt.
|
||||
* Falls die Schlange leer ist, wird sie nicht veraendert.
|
||||
*/
|
||||
public void dequeue() {
|
||||
if (!this.isEmpty()) {
|
||||
head = head.getNext();
|
||||
if (this.isEmpty()) {
|
||||
head = null;
|
||||
tail = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Die Anfrage liefert das erste Objekt der Schlange.
|
||||
* Die Schlange bleibt unveraendert.
|
||||
* Falls die Schlange leer ist, wird null zurueckgegeben.
|
||||
*
|
||||
* @return das erste Objekt der Schlange vom Typ ContentType oder null,
|
||||
* falls die Schlange leer ist
|
||||
*/
|
||||
public ContentType front() {
|
||||
if (this.isEmpty()) {
|
||||
return null;
|
||||
} else {
|
||||
return head.getContent();
|
||||
}
|
||||
}
|
||||
}
|
||||
/**
|
||||
* <p>
|
||||
* Materialien zu den zentralen NRW-Abiturpruefungen im Fach Informatik ab 2018
|
||||
* </p>
|
||||
* <p>
|
||||
* Generische Klasse Queue<ContentType>
|
||||
* </p>
|
||||
* <p>
|
||||
* Objekte der generischen Klasse Queue (Warteschlange) verwalten beliebige
|
||||
* Objekte vom Typ ContentType nach dem First-In-First-Out-Prinzip, d.h., das
|
||||
* zuerst abgelegte Objekt wird als erstes wieder entnommen. Alle Methoden haben
|
||||
* eine konstante Laufzeit, unabhaengig von der Anzahl der verwalteten Objekte.
|
||||
* </p>
|
||||
*
|
||||
* @author Qualitaets- und UnterstuetzungsAgentur - Landesinstitut fuer Schule
|
||||
* @version Generisch_02 2014-02-21
|
||||
*/
|
||||
public class Queue<ContentType> {
|
||||
|
||||
/* --------- Anfang der privaten inneren Klasse -------------- */
|
||||
|
||||
private class QueueNode {
|
||||
|
||||
private ContentType content = null;
|
||||
private QueueNode nextNode = null;
|
||||
|
||||
/**
|
||||
* Ein neues Objekt vom Typ QueueNode<ContentType> wird erschaffen.
|
||||
* Der Inhalt wird per Parameter gesetzt. Der Verweis ist leer.
|
||||
*
|
||||
* @param pContent das Inhaltselement des Knotens vom Typ ContentType
|
||||
*/
|
||||
public QueueNode(ContentType pContent) {
|
||||
content = pContent;
|
||||
nextNode = null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Der Verweis wird auf das Objekt, das als Parameter uebergeben wird,
|
||||
* gesetzt.
|
||||
*
|
||||
* @param pNext der Nachfolger des Knotens
|
||||
*/
|
||||
public void setNext(QueueNode pNext) {
|
||||
nextNode = pNext;
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert das naechste Element des aktuellen Knotens.
|
||||
*
|
||||
* @return das Objekt vom Typ QueueNode, auf das der aktuelle Verweis zeigt
|
||||
*/
|
||||
public QueueNode getNext() {
|
||||
return nextNode;
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert das Inhaltsobjekt des Knotens vom Typ ContentType.
|
||||
*
|
||||
* @return das Inhaltsobjekt des Knotens
|
||||
*/
|
||||
public ContentType getContent() {
|
||||
return content;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/* ----------- Ende der privaten inneren Klasse -------------- */
|
||||
|
||||
private QueueNode head;
|
||||
private QueueNode tail;
|
||||
|
||||
/**
|
||||
* Eine leere Schlange wird erzeugt.
|
||||
* Objekte, die in dieser Schlange verwaltet werden, muessen vom Typ
|
||||
* ContentType sein.
|
||||
*/
|
||||
public Queue() {
|
||||
head = null;
|
||||
tail = null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Die Anfrage liefert den Wert true, wenn die Schlange keine Objekte enthaelt,
|
||||
* sonst liefert sie den Wert false.
|
||||
*
|
||||
* @return true, falls die Schlange leer ist, sonst false
|
||||
*/
|
||||
public boolean isEmpty() {
|
||||
return head == null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Das Objekt pContentType wird an die Schlange angehaengt.
|
||||
* Falls pContentType gleich null ist, bleibt die Schlange unveraendert.
|
||||
*
|
||||
* @param pContent
|
||||
* das anzuhaengende Objekt vom Typ ContentType
|
||||
*/
|
||||
public void enqueue(ContentType pContent) {
|
||||
if (pContent != null) {
|
||||
QueueNode newNode = new QueueNode(pContent);
|
||||
if (this.isEmpty()) {
|
||||
head = newNode;
|
||||
tail = newNode;
|
||||
} else {
|
||||
tail.setNext(newNode);
|
||||
tail = newNode;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Das erste Objekt wird aus der Schlange entfernt.
|
||||
* Falls die Schlange leer ist, wird sie nicht veraendert.
|
||||
*/
|
||||
public void dequeue() {
|
||||
if (!this.isEmpty()) {
|
||||
head = head.getNext();
|
||||
if (this.isEmpty()) {
|
||||
head = null;
|
||||
tail = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Die Anfrage liefert das erste Objekt der Schlange.
|
||||
* Die Schlange bleibt unveraendert.
|
||||
* Falls die Schlange leer ist, wird null zurueckgegeben.
|
||||
*
|
||||
* @return das erste Objekt der Schlange vom Typ ContentType oder null,
|
||||
* falls die Schlange leer ist
|
||||
*/
|
||||
public ContentType front() {
|
||||
if (this.isEmpty()) {
|
||||
return null;
|
||||
} else {
|
||||
return head.getContent();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Binary file not shown.
|
@ -0,0 +1,7 @@
|
|||
#BlueJ class context
|
||||
comment0.target=SelectionListener
|
||||
comment0.text=\r\n\ Listener-INterface,\ um\ auf\ \u00C4nderungen\ der\ Auswahlboxen\ im\ GUI\ zu\ reagieren.\r\n
|
||||
comment1.params=pList\ pNewValue
|
||||
comment1.target=void\ selectionChanged(java.lang.String,\ java.lang.String)
|
||||
comment1.text=\r\n\ Wird\ aufgerufen,\ wenn\ sich\ die\ Auswahl\ \u00E4ndert.\r\n\ @param\ pList\ Name\ der\ Auswahlbox\r\n\ @param\ pNewValue\ Neuer\ Wert\r\n
|
||||
numComments=2
|
Binary file not shown.
|
@ -0,0 +1,12 @@
|
|||
#BlueJ class context
|
||||
comment0.target=Stundenplan
|
||||
comment1.params=args
|
||||
comment1.target=void\ main(java.lang.String[])
|
||||
comment1.text=\r\n\ Main-Methode\ um\ das\ Programm\ (au\u00DFerhalb\ von\ BlueJ)\ zu\ starten.\r\n\r\n\ @param\ args\r\n
|
||||
comment2.params=
|
||||
comment2.target=Stundenplan()
|
||||
comment2.text=\r\n\ Konstruktor\ des\ Hauptprogramms\r\n
|
||||
comment3.params=pList\ pNewValue
|
||||
comment3.target=void\ selectionChanged(java.lang.String,\ java.lang.String)
|
||||
comment3.text=\r\n\ Methode\ \ um\ auf\ \u00C4nderungen\ in\ der\ GUi\ zu\ reagieren.\ Sobald\ der\ nutzer\ die\r\n\ Auswahl\ \u00E4ndert,\ wird\ diese\ Methode\ aufgerufen.\ Der\ erste\ Parameter\ ist\ der\r\n\ Name\ der\ Auswahlliste,\ die\ sich\ ge\u00E4ndert\ hat\ (erster\ Parameter\ von\r\n\ {@link\ StundenplanGUI\#addFilter(String,\ String[])}\ oben)\ und\ der\ zweite\ ist\r\n\ der\ neue\ Wert\ der\ Auswahl.\r\n\r\n\ @param\ pList\ \ \ \ \ Name\ der\ Auswahlliste\r\n\ @param\ pNewValue\ Neuer\ Wert\ der\ Auswahl\r\n
|
||||
numComments=4
|
|
@ -0,0 +1 @@
|
|||
{"version":2,"www":"erdplus.com","shapes":[{"type":"Entity","details":{"name":"Lehrer","type":"regular","x":559,"y":352.5,"isDisjointed":true,"isTotalSpecialization":true,"isSubtype":false,"supertypeEntityId":null,"id":1}},{"type":"Entity","details":{"name":"Klassen","type":"regular","x":560,"y":148.5,"isDisjointed":true,"isTotalSpecialization":true,"isSubtype":false,"supertypeEntityId":null,"id":3}},{"type":"Entity","details":{"name":"Unterrichtsstunden","type":"regular","x":888,"y":149.5,"isDisjointed":true,"isTotalSpecialization":true,"isSubtype":false,"supertypeEntityId":null,"id":4}},{"type":"Attribute","details":{"name":"Fach","isDerived":false,"isMultivalued":false,"isOptional":false,"isComposite":false,"isUnique":false,"x":886,"y":36.5,"id":6}},{"type":"Attribute","details":{"name":"Tag","isDerived":false,"isMultivalued":false,"isOptional":false,"isComposite":false,"isUnique":false,"x":1044,"y":38.5,"id":7}},{"type":"Attribute","details":{"name":"Stunde","isDerived":false,"isMultivalued":false,"isOptional":false,"isComposite":false,"isUnique":false,"x":1056,"y":152.5,"id":8}},{"type":"Attribute","details":{"name":"Jahrgang","isDerived":false,"isMultivalued":false,"isOptional":false,"isComposite":false,"isUnique":false,"x":561,"y":33.5,"id":12}},{"type":"Attribute","details":{"name":"Zug","isDerived":false,"isMultivalued":false,"isOptional":false,"isComposite":false,"isUnique":false,"x":373,"y":148.5,"id":14}},{"type":"Attribute","details":{"name":"Kürzel","isDerived":false,"isMultivalued":false,"isOptional":false,"isComposite":false,"isUnique":false,"x":381,"y":359.5,"id":18}},{"type":"Attribute","details":{"name":"Vorname","isDerived":false,"isMultivalued":false,"isOptional":false,"isComposite":false,"isUnique":false,"x":390,"y":465.5,"id":19}},{"type":"Attribute","details":{"name":"Nachname","isDerived":false,"isMultivalued":false,"isOptional":false,"isComposite":false,"isUnique":false,"x":561,"y":478.5,"id":20}},{"type":"Attribute","details":{"name":"Raum","isDerived":false,"isMultivalued":false,"isOptional":false,"isComposite":false,"isUnique":false,"x":884,"y":328.5,"id":24}},{"type":"Relationship","details":{"name":"unterrichtet in","isIdentifying":false,"x":732,"y":263,"slots":[{"slotIndex":0,"minimum":"","maximum":"","participation":"unspecified","cardinality":"many","role":"","entityId":1},{"slotIndex":1,"minimum":"","maximum":"","participation":"unspecified","cardinality":"one","role":"","entityId":4}],"id":30}},{"type":"Relationship","details":{"name":"sind in","isIdentifying":false,"x":733,"y":150,"slots":[{"slotIndex":0,"minimum":"","maximum":"","participation":"unspecified","cardinality":"many","role":"","entityId":3},{"slotIndex":1,"minimum":"","maximum":"","participation":"unspecified","cardinality":"many","role":"","entityId":4}],"id":33}},{"type":"Attribute","details":{"name":"ID","isDerived":false,"isMultivalued":false,"isOptional":false,"isComposite":false,"isUnique":true,"x":747,"y":37.5,"id":42}},{"type":"Relationship","details":{"name":"unterrichtet","isIdentifying":false,"x":559,"y":253,"slots":[{"slotIndex":0,"minimum":"","maximum":"","participation":"unspecified","cardinality":"many","role":"","entityId":1},{"slotIndex":1,"minimum":"","maximum":"","participation":"unspecified","cardinality":"many","role":"","entityId":3}],"id":54}},{"type":"Attribute","details":{"name":"Bezeichner","isDerived":false,"isMultivalued":false,"isOptional":false,"isComposite":false,"isUnique":false,"x":383,"y":34,"id":57}}],"connectors":[{"type":"Connector","details":{"id":43},"source":6,"destination":4},{"type":"Connector","details":{"id":44},"source":7,"destination":4},{"type":"Connector","details":{"id":45},"source":8,"destination":4},{"type":"Connector","details":{"id":46},"source":12,"destination":3},{"type":"Connector","details":{"id":47},"source":14,"destination":3},{"type":"Connector","details":{"id":48},"source":18,"destination":1},{"type":"Connector","details":{"id":49},"source":19,"destination":1},{"type":"Connector","details":{"id":50},"source":20,"destination":1},{"type":"RelationshipConnector","details":{"slotIndex":0,"id":31},"source":1,"destination":30},{"type":"RelationshipConnector","details":{"slotIndex":1,"id":32},"source":4,"destination":30},{"type":"RelationshipConnector","details":{"slotIndex":0,"id":34},"source":3,"destination":33},{"type":"RelationshipConnector","details":{"slotIndex":1,"id":35},"source":4,"destination":33},{"type":"Connector","details":{"id":52},"source":42,"destination":4},{"type":"Connector","details":{"id":53},"source":24,"destination":4},{"type":"RelationshipConnector","details":{"slotIndex":0,"id":55},"source":1,"destination":54},{"type":"RelationshipConnector","details":{"slotIndex":1,"id":56},"source":3,"destination":54},{"type":"Connector","details":{"id":58},"source":57,"destination":3}],"width":2000,"height":1000}
|
Binary file not shown.
|
@ -0,0 +1,40 @@
|
|||
#BlueJ class context
|
||||
comment0.target=StundenplanGUI
|
||||
comment0.text=\r\n\ GUI\ f\u00FCr\ das\ Stundenplanprogramm.\r\n
|
||||
comment1.params=
|
||||
comment1.target=StundenplanGUI()
|
||||
comment1.text=\r\n\ Erstellt\ ein\ neues\ GUI,\ zeigt\ es\ aber\ noch\ nicht\ an.\ Das\ Hauptprogramm\r\n\ muss\ dies\ explizit\ mit\ {@link\ \#setVisible(boolean)}\ tun.\r\n
|
||||
comment10.params=
|
||||
comment10.target=void\ addComponents()
|
||||
comment10.text=\r\n\ F\u00FCgt\ dem\ GUI\ die\ Standard-Komponenten\ hinzu.\r\n
|
||||
comment11.params=pLabel
|
||||
comment11.target=javax.swing.JLabel\ makeLabel(java.lang.String)
|
||||
comment11.text=\r\n\ Erzeugt\ ein\ Text-Label\ mit\ der\ Standard-Schrift\ und\ dem\ angegebenen\ Text.\r\n\ @param\ pLabel\r\n\ @return\r\n
|
||||
comment12.params=pLabel\ pFont
|
||||
comment12.target=javax.swing.JLabel\ makeLabel(java.lang.String,\ java.awt.Font)
|
||||
comment12.text=\r\n\ Erzeugt\ ein\ Text-Label\ mit\ der\ angegebenen\ Schrift\ und\ dem\ Text.\r\n\ @param\ pLabel\r\n\ @param\ pFont\r\n\ @return\r\n
|
||||
comment2.params=pName\ pOptions
|
||||
comment2.target=void\ addFilter(java.lang.String,\ java.lang.String[])
|
||||
comment2.text=\r\n\ F\u00FCgt\ der\ Seitenleister\ eine\ neue\ Auswahlbox\ hinzu.\ Der\ Name\ wird\ bei\r\n\ \u00C4nderungen\ an\ den\ {@link\ SelectionListener}\ \u00FCbergeben,\ um\ verschiedene\r\n\ Boxen\ unterscheiden\ zu\ k\u00F6nnen.\r\n\ @param\ pName\ Name\ des\ Filters\r\n\ @param\ pOptions\ M\u00F6gliche\ Optionen\r\n
|
||||
comment3.params=pName
|
||||
comment3.target=void\ removeFilter(java.lang.String)
|
||||
comment3.text=\r\n\ Entfernt\ die\ Auswahlbox\ mit\ dem\ angegebnen\ Namen\ aus\ der\ Seitenleiste.\r\n\ @param\ pName\r\n
|
||||
comment4.params=
|
||||
comment4.target=void\ removeAllFilters()
|
||||
comment4.text=\r\n\ Entfernt\ alle\ Auswahlboxen\ aus\ der\ Seitenleiste.\r\n
|
||||
comment5.params=pCol\ pRow\ pTitle\ pSubtitle\ pText\ pFooter\ pColor
|
||||
comment5.target=void\ addLesson(int,\ int,\ java.lang.String,\ java.lang.String,\ java.lang.String,\ java.lang.String,\ java.awt.Color)
|
||||
comment5.text=\r\n\ F\u00FCgt\ eine\ neue\ Stunde\ in\ den\ Plan\ ein.\ Exisitiert\ in\ der\ angegebenen\ Zelle\r\n\ schon\ eine\ Stunde,\ wird\ diese\ entfernt\ und\ durch\ die\ neue\ ersetzt.\r\n\r\n\ Eine\ Stunde\ in\ der\ GUI\ hat\ verschiedene\ Bereiche,\ in\ denen\ Informationen\r\n\ (Text)\ untergebracht\ werden\ k\u00F6nnen,\ sowie\ eine\ Farbe.\r\n\r\n\ Nachdem\ eine\ oder\ mehrere\ Stunden\ hinzugef\u00FCgt\ wurden,\ sollte\ das\ Fenster\ mit\r\n\ {@link\ JFrame\#revalidate()}\ und\ {@link\ JFrame\#repaint()}\ neu\ gezeichnet\ werden.\r\n\r\n\ @param\ pCol\ Spaltenindex\ (0\=Montag,\ ...,\ 4\=Freitag)\r\n\ @param\ pRow\ Zeilenindex\ (0\=1.\ Stunde,\ ...,\ 9\=10.\ Stunde)\r\n\ @param\ pTitle\ \u00DCberschrift\r\n\ @param\ pSubtitle\ Untertitel\r\n\ @param\ pText\ Beschreibung\r\n\ @param\ pFooter\ Fu\u00DFzeile\r\n\ @param\ pColor\ Farbe\ der\ Stunde\ im\ Plan\r\n
|
||||
comment6.params=pCol\ pRow
|
||||
comment6.target=void\ removeLesson(int,\ int)
|
||||
comment6.text=\r\n\ Entfernt\ die\ Stunde\ aus\ der\ angebenen\ Zelle.\r\n\ @param\ pCol\ Spaltenindex\ (0\=Montag,\ ...,\ 4\=Freitag)\r\n\ @param\ pRow\ Zeilenindex\ (0\=1.\ Stunde,\ ...,\ 9\=10.\ Stunde)\r\n
|
||||
comment7.params=
|
||||
comment7.target=void\ removeAllLessons()
|
||||
comment7.text=\r\n\ Entfernt\ alle\ derzeit\ angezeigten\ Stunden\ aus\ dem\ GUI.\r\n
|
||||
comment8.params=pSelectionListener
|
||||
comment8.target=void\ addSelectionListener(SelectionListener)
|
||||
comment8.text=\r\n\ Setzt\ den\ Listener,\ der\ \u00FCber\ \u00C4nderungen\ der\ Auswahlboxen\ informiert\ wird.\r\n\ @param\ pSelectionListener\r\n
|
||||
comment9.params=pActionEvent
|
||||
comment9.target=void\ actionPerformed(java.awt.event.ActionEvent)
|
||||
comment9.text=\r\n\ Leitet\ die\ \u00C4nderungen\ der\ Auswahlboxen\ an\ den\ {@link\ SelectionListener}\r\n\ weiter.\r\n\ @param\ pActionEvent\r\n
|
||||
numComments=13
|
|
@ -162,8 +162,8 @@ public class StundenplanGUI extends JFrame implements ActionListener {
|
|||
* Entfernt alle derzeit angezeigten Stunden aus dem GUI.
|
||||
*/
|
||||
public void removeAllLessons() {
|
||||
for (int i = 0; i < 10; i++) {
|
||||
for (int j = 0; j < 5; j++) {
|
||||
for (int i = 0; i < 5; i++) {
|
||||
for (int j = 0; j < 10; j++) {
|
||||
removeLesson(i, j);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,319 @@
|
|||
#BlueJ package file
|
||||
dependency1.from=Lunk
|
||||
dependency1.to=Welt
|
||||
dependency1.type=UsesDependency
|
||||
dependency10.from=Karte_0
|
||||
dependency10.to=Feld
|
||||
dependency10.type=UsesDependency
|
||||
dependency11.from=Karte_1
|
||||
dependency11.to=Welt
|
||||
dependency11.type=UsesDependency
|
||||
dependency12.from=Karte_1
|
||||
dependency12.to=Wassereimer
|
||||
dependency12.type=UsesDependency
|
||||
dependency13.from=Karte_1
|
||||
dependency13.to=Feld
|
||||
dependency13.type=UsesDependency
|
||||
dependency14.from=Karte_2
|
||||
dependency14.to=Welt
|
||||
dependency14.type=UsesDependency
|
||||
dependency15.from=Karte_2
|
||||
dependency15.to=Ork
|
||||
dependency15.type=UsesDependency
|
||||
dependency16.from=Karte_2
|
||||
dependency16.to=Feld
|
||||
dependency16.type=UsesDependency
|
||||
dependency17.from=Karte_3
|
||||
dependency17.to=Welt
|
||||
dependency17.type=UsesDependency
|
||||
dependency18.from=Karte_3
|
||||
dependency18.to=Feld
|
||||
dependency18.type=UsesDependency
|
||||
dependency19.from=Karte_3
|
||||
dependency19.to=Heiltrank
|
||||
dependency19.type=UsesDependency
|
||||
dependency2.from=Lunk
|
||||
dependency2.to=Gegenstand
|
||||
dependency2.type=UsesDependency
|
||||
dependency20.from=Karte_3
|
||||
dependency20.to=TrankAngriff
|
||||
dependency20.type=UsesDependency
|
||||
dependency21.from=Karte_3
|
||||
dependency21.to=Zombie
|
||||
dependency21.type=UsesDependency
|
||||
dependency22.from=Karte_3
|
||||
dependency22.to=Troll
|
||||
dependency22.type=UsesDependency
|
||||
dependency23.from=Gegenstand
|
||||
dependency23.to=Karte
|
||||
dependency23.type=UsesDependency
|
||||
dependency24.from=Gegenstand
|
||||
dependency24.to=Lunk
|
||||
dependency24.type=UsesDependency
|
||||
dependency25.from=Gegenstand
|
||||
dependency25.to=Gegner
|
||||
dependency25.type=UsesDependency
|
||||
dependency26.from=Gegner
|
||||
dependency26.to=Karte
|
||||
dependency26.type=UsesDependency
|
||||
dependency27.from=Zombie
|
||||
dependency27.to=Karte
|
||||
dependency27.type=UsesDependency
|
||||
dependency28.from=Zombie
|
||||
dependency28.to=Troll
|
||||
dependency28.type=UsesDependency
|
||||
dependency29.from=Zombie
|
||||
dependency29.to=Lunk
|
||||
dependency29.type=UsesDependency
|
||||
dependency3.from=Karte
|
||||
dependency3.to=Welt
|
||||
dependency3.type=UsesDependency
|
||||
dependency30.from=Ork
|
||||
dependency30.to=Karte
|
||||
dependency30.type=UsesDependency
|
||||
dependency31.from=Ork
|
||||
dependency31.to=Lunk
|
||||
dependency31.type=UsesDependency
|
||||
dependency32.from=Heiltrank
|
||||
dependency32.to=Karte
|
||||
dependency32.type=UsesDependency
|
||||
dependency33.from=Heiltrank
|
||||
dependency33.to=Lunk
|
||||
dependency33.type=UsesDependency
|
||||
dependency34.from=Heiltrank
|
||||
dependency34.to=Gegner
|
||||
dependency34.type=UsesDependency
|
||||
dependency35.from=Troll
|
||||
dependency35.to=Karte
|
||||
dependency35.type=UsesDependency
|
||||
dependency36.from=Troll
|
||||
dependency36.to=Lunk
|
||||
dependency36.type=UsesDependency
|
||||
dependency37.from=Wassereimer
|
||||
dependency37.to=Karte
|
||||
dependency37.type=UsesDependency
|
||||
dependency38.from=Wassereimer
|
||||
dependency38.to=Lunk
|
||||
dependency38.type=UsesDependency
|
||||
dependency39.from=Wassereimer
|
||||
dependency39.to=Feld
|
||||
dependency39.type=UsesDependency
|
||||
dependency4.from=Karte
|
||||
dependency4.to=Gegenstand
|
||||
dependency4.type=UsesDependency
|
||||
dependency40.from=Wassereimer
|
||||
dependency40.to=Gegner
|
||||
dependency40.type=UsesDependency
|
||||
dependency41.from=TrankAngriff
|
||||
dependency41.to=Karte
|
||||
dependency41.type=UsesDependency
|
||||
dependency42.from=TrankAngriff
|
||||
dependency42.to=Lunk
|
||||
dependency42.type=UsesDependency
|
||||
dependency43.from=TrankAngriff
|
||||
dependency43.to=Gegner
|
||||
dependency43.type=UsesDependency
|
||||
dependency44.from=Welt
|
||||
dependency44.to=Lunk
|
||||
dependency44.type=UsesDependency
|
||||
dependency45.from=Welt
|
||||
dependency45.to=Karte
|
||||
dependency45.type=UsesDependency
|
||||
dependency46.from=Welt
|
||||
dependency46.to=Karte_0
|
||||
dependency46.type=UsesDependency
|
||||
dependency47.from=Welt
|
||||
dependency47.to=Karte_1
|
||||
dependency47.type=UsesDependency
|
||||
dependency48.from=Welt
|
||||
dependency48.to=Karte_2
|
||||
dependency48.type=UsesDependency
|
||||
dependency49.from=Welt
|
||||
dependency49.to=Karte_3
|
||||
dependency49.type=UsesDependency
|
||||
dependency5.from=Karte
|
||||
dependency5.to=Gegner
|
||||
dependency5.type=UsesDependency
|
||||
dependency50.from=Welt
|
||||
dependency50.to=Feld
|
||||
dependency50.type=UsesDependency
|
||||
dependency51.from=Welt
|
||||
dependency51.to=Gegenstand
|
||||
dependency51.type=UsesDependency
|
||||
dependency52.from=Welt
|
||||
dependency52.to=Gegner
|
||||
dependency52.type=UsesDependency
|
||||
dependency53.from=Welt
|
||||
dependency53.to=Zombie
|
||||
dependency53.type=UsesDependency
|
||||
dependency54.from=Welt
|
||||
dependency54.to=Ork
|
||||
dependency54.type=UsesDependency
|
||||
dependency55.from=Zulda
|
||||
dependency55.to=Welt
|
||||
dependency55.type=UsesDependency
|
||||
dependency56.from=Zulda
|
||||
dependency56.to=Lunk
|
||||
dependency56.type=UsesDependency
|
||||
dependency6.from=Karte
|
||||
dependency6.to=Feld
|
||||
dependency6.type=UsesDependency
|
||||
dependency7.from=Karte_0
|
||||
dependency7.to=Welt
|
||||
dependency7.type=UsesDependency
|
||||
dependency8.from=Karte_0
|
||||
dependency8.to=Heiltrank
|
||||
dependency8.type=UsesDependency
|
||||
dependency9.from=Karte_0
|
||||
dependency9.to=Troll
|
||||
dependency9.type=UsesDependency
|
||||
editor.fx.0.height=0
|
||||
editor.fx.0.width=0
|
||||
editor.fx.0.x=0
|
||||
editor.fx.0.y=0
|
||||
objectbench.height=87
|
||||
objectbench.width=1240
|
||||
package.divider.horizontal=0.6
|
||||
package.divider.vertical=0.8422818791946308
|
||||
package.editor.height=482
|
||||
package.editor.width=1116
|
||||
package.editor.x=0
|
||||
package.editor.y=25
|
||||
package.frame.height=695
|
||||
package.frame.width=1280
|
||||
package.numDependencies=56
|
||||
package.numTargets=18
|
||||
package.showExtends=true
|
||||
package.showUses=true
|
||||
project.charset=UTF-8
|
||||
readme.height=58
|
||||
readme.name=@README
|
||||
readme.width=47
|
||||
readme.x=10
|
||||
readme.y=10
|
||||
target1.height=50
|
||||
target1.name=Lunk
|
||||
target1.showInterface=false
|
||||
target1.type=ClassTarget
|
||||
target1.width=80
|
||||
target1.x=170
|
||||
target1.y=120
|
||||
target10.height=50
|
||||
target10.name=Karte_1
|
||||
target10.showInterface=false
|
||||
target10.type=ClassTarget
|
||||
target10.width=80
|
||||
target10.x=1300
|
||||
target10.y=240
|
||||
target11.height=50
|
||||
target11.name=Ork
|
||||
target11.showInterface=false
|
||||
target11.type=ClassTarget
|
||||
target11.width=80
|
||||
target11.x=1320
|
||||
target11.y=650
|
||||
target12.height=70
|
||||
target12.name=Wassereimer
|
||||
target12.showInterface=false
|
||||
target12.type=ClassTarget
|
||||
target12.width=120
|
||||
target12.x=190
|
||||
target12.y=670
|
||||
target13.height=50
|
||||
target13.name=Gegner
|
||||
target13.showInterface=false
|
||||
target13.type=AbstractTarget
|
||||
target13.width=80
|
||||
target13.x=1190
|
||||
target13.y=680
|
||||
target14.height=50
|
||||
target14.name=Feld
|
||||
target14.showInterface=false
|
||||
target14.type=ClassTarget
|
||||
target14.width=80
|
||||
target14.x=1250
|
||||
target14.y=100
|
||||
target15.height=50
|
||||
target15.name=Karte_2
|
||||
target15.showInterface=false
|
||||
target15.type=ClassTarget
|
||||
target15.width=80
|
||||
target15.x=1200
|
||||
target15.y=240
|
||||
target16.height=70
|
||||
target16.name=Karte_3
|
||||
target16.showInterface=false
|
||||
target16.type=ClassTarget
|
||||
target16.width=120
|
||||
target16.x=1230
|
||||
target16.y=310
|
||||
target17.height=50
|
||||
target17.name=TrankAngriff
|
||||
target17.showInterface=false
|
||||
target17.type=ClassTarget
|
||||
target17.width=100
|
||||
target17.x=160
|
||||
target17.y=580
|
||||
target18.height=50
|
||||
target18.name=Welt
|
||||
target18.showInterface=false
|
||||
target18.type=ClassTarget
|
||||
target18.width=80
|
||||
target18.x=530
|
||||
target18.y=140
|
||||
target2.height=50
|
||||
target2.name=Karte
|
||||
target2.showInterface=false
|
||||
target2.type=ClassTarget
|
||||
target2.width=80
|
||||
target2.x=1300
|
||||
target2.y=170
|
||||
target3.height=50
|
||||
target3.name=Troll
|
||||
target3.showInterface=false
|
||||
target3.type=ClassTarget
|
||||
target3.width=80
|
||||
target3.x=1100
|
||||
target3.y=730
|
||||
target4.height=50
|
||||
target4.name=FigureMaker
|
||||
target4.showInterface=false
|
||||
target4.type=ClassTarget
|
||||
target4.width=100
|
||||
target4.x=450
|
||||
target4.y=80
|
||||
target5.height=70
|
||||
target5.name=Zombie
|
||||
target5.showInterface=false
|
||||
target5.type=ClassTarget
|
||||
target5.width=120
|
||||
target5.x=1320
|
||||
target5.y=730
|
||||
target6.height=50
|
||||
target6.name=Zulda
|
||||
target6.showInterface=false
|
||||
target6.type=ClassTarget
|
||||
target6.width=80
|
||||
target6.x=580
|
||||
target6.y=80
|
||||
target7.height=50
|
||||
target7.name=Heiltrank
|
||||
target7.showInterface=false
|
||||
target7.type=ClassTarget
|
||||
target7.width=100
|
||||
target7.x=30
|
||||
target7.y=550
|
||||
target8.height=50
|
||||
target8.name=Gegenstand
|
||||
target8.showInterface=false
|
||||
target8.type=AbstractTarget
|
||||
target8.width=100
|
||||
target8.x=20
|
||||
target8.y=710
|
||||
target9.height=50
|
||||
target9.name=Karte_0
|
||||
target9.showInterface=false
|
||||
target9.type=ClassTarget
|
||||
target9.width=80
|
||||
target9.x=1200
|
||||
target9.y=170
|
BIN
stundenplan.db
BIN
stundenplan.db
Binary file not shown.
Loading…
Reference in New Issue