Datenbankgestütztes Artikelverwaltungssystem mit Java

Vertiefte Programmierkonzepte in Java mit Beispielen


Hausarbeit, 2014

22 Seiten, Note: 2,0


Leseprobe

Inhaltsverzeichnis

Abbildungsverzeichnis

Abkürzungsverzeichnis

1 Einleitung
1.1 Problemstellung und Ziel dieser Arbeit
1.2 Aufbau der Arbeit

2 Grundlagen
2.1 Swing
2.2 Layoutmanager allgemein
2.2.1 BorderLayout
2.2.2 FlowLayout
2.2.3 GridLayout
2.2.4 BoxLayout
2.2.5 GridBagLayout
2.3 Steuerelemente
2.3.1 JLabel
2.3.2 JButton
2.3.3 JTextField
2.3.4 JSpinner
2.3.5 JComboBox
2.3.6 JTabbedPane

3 Anwendungsbeschreibung
3.1 Controller
3.2 Model
3.3 View
3.3.1 Layoutmanger
3.3.2 Steuerelemete
3.3.3 Eventhandling

4 Zusammenfassung
4.1 Kritische Würdigung
4.2 Ausblick

Literaturverzeichnis

Abbildungsverzeichnis

1 MVC Design Pattern

2 View beispielhafte Darstellung

3 View beispielhafte Darstellung

4 Definition von Gridlayout

5 Definition der Textfelder

6 Definition der Buttons

7 Definition Textfeld des zu löschenden Artikels

8 Anordnung der Steuerelemente

9 Definition Spinnermodel

10 Codeausschnitt Tab Artikelliste linke Seite

11 Codeausschnitt Tab Artikelliste rechte Seite

12 Codeausschnitt Tab Artikel Buttonfunktionalität

13 Codeausschnitt Tab Artikel Buttonfunktionalität

Abkürzungsverzeichnis

Abbildung in dieser Leseprobe nicht enthalten

1 Einleitung

Das Assignment für das Studienmodul JAV02 - Vertiefte Programmierkonzepte in Java - wurde von Daniel Falkner und Eugen Grinschuk gemeinsam erstellt. Deshalb wird eine einheitliche Gruppenbenotung gewünscht.

Flexibilität und Skalierbarkeit wird in der IT immer wichtiger, sodass nicht nur die Infrastruktur diese Eigenschaften erfüllen muss, sondern auch die darauf laufende Anwendung. Außerdem ist Plattformunabhängigkeit ebenfalls von großer Bedeutung, sodass mit Java eine Plattformunabhängigkeit ermöglicht wird, weshalb diese Programmiersprache ihren Einsatz in der hier beschriebenen Anwendung fand.

1.1 Problemstellung und Ziel dieser Arbeit

Die Problemstellung war, dass kein datenbankgestütztes Artikelverwaltungssystem mit grafischer Unterstützung vorlag, sodass die Artikel nicht zentral verwaltet und gespeichert werden konnten.

Das Ziel dieser Arbeit ist es, ein datenbankgestütztes Artikelverwaltungssystem mit Java zu entwickeln und zu beschreiben. Der Fokus bei der Beschreibung der Anwendung wird dabei auf Layoutmanager sowie Steuerelemente gelegt. Die restlichen Elemente der Anwendung werden, falls notwendig, nur kurz erwähnt und nicht weiter erläutert, da diese unter anderem, Gegenstand anderer Ausarbeitungen sind.

1.2 Aufbau der Arbeit

In Kapitel 2 werden wichtige Grundlagen behandelt, welche für ein besseres Verständ- nis der weiteren Arbeit notwendig sind. In Kapitel 3 wird die entwickelte Anwendung näher beleuchtet. Außerdem werden die verwendeten Layoutmanager sowie Steuer- elemente und Eventhandler genauer beschrieben. Kapitel 4 bildet den Schluss dieser Arbeit, indem eine Zusammenfassung, eine kritische Würdigung sowie ein Ausblick gegeben wird. Die verwendete Datenbankstruktur sowie der im Laufe der Arbeit er- stellte Programmquellcode befinden sich als Anlage auf der mitgesendeten Compact Disc (CD).

2 Grundlagen

In den nachfolgenden Unterkapiteln werden Swing sowie weitere zugehörige und in der Anwendungserstellung verwendete Steuerelemente näher erläutert. Des Weiteren wird der Layoutmanager allgemein sowie die bekanntesten Layoutmanager kurz vor- gestellt.

2.1 Swing

Um die Bedienung einer Anwendung für den Benutzer komfortabel zu gestalten, wer- den oft grafische Bedienoberflächen, die sogenannte Graphical User Interface (GUI), erstellt. Java stellt mit Swing eine Klassenbibliothek zur Programmierung von gra- fischen Benutzeroberflächen bereit. Swing ist allerdings nicht die einzige Klassenbi- bliothek zum Erstellen von GUIs. Neben Swing gibt es noch unter anderem das mitt- lerweile veraltete Abstract Windowing Toolkit (AWT)1 sowie den aktuellen JavaFX2. Swing ist dabei eine Teilmenge der Java-Foundation-Classes (JFC) und eine Zusam- menstellung von mehreren Klassenbibliotheken die folgende Merkmale zur Erstellung von grafischen Benutzeroberflächen zur Verfügung stellen3. Die GUI-Komponenten, auch Steuerelemente genannt, werden im späteren Kapitel 2.3 noch im Detail erörtert. Pluggable ’Look and Feel’ ermöglicht es, dass die Anwendung sich an das Aussehen und das Verhalten von unterschiedlichen Plattformen automatisch anpasst. So ist das Windows ’Look and Feel’ nur unter Microsoft Windows, das Macintosh hingegen nur unter der Apple Mac OS-Plattform verfügbar. Accessibility bietet die Möglichkeit An- wendungen um Funktionen der Barrierefreit zu erweitern. Dazu ist es beispielsweise möglich eine Spracheingabe und -ausgabe zu integrieren. Java 2D ist für die Druck- ausgabe verantwortlich und kann auch für das Zeichnen von Diagrammen verwendet werden. Mit der Internationalisierung können Anwendungen mit wenig Aufwand mul- tilingual erstellt werden4.

2.2 Layoutmanager allgemein

Der Layoutmanager in Java nimmt dem Programmierer viel Arbeit bei der Erstellung der GUI ab. Denn er ordnet die Komponenten automatisch an, sodass der Programmie- rer die Komponenten nicht einzeln manuell positionieren muss. Ebenfalls die Größe der jeweiligen Komponenten übernimmt der Layoutmanager und passt diese an, so- dass auch hier der manuelle Eingriff durch den Programmierer erspart bleibt. Ändert sich die Größe der Komponente oder des Fensters, so wird die Größe der Komponenten automatisch skaliert, um die ideale Größe dieser zu gewährleisten. Die meisten Lay- outmanager können verwendet werden, wenn die java.awt Class eingebunden wird5. In den nachfolgenden Unterkapiteln werden die bekanntesten fünf Layoutmanager näher erläutert.

2.2.1 BorderLayout

Mit dem BorderLayout werden die Container des Fensters in fünf verschiedene Zonen eingeteilt, wobei nicht alle Zonen belegt werden müssen. Die Zonen North & South erhalten eine bevorzugte Höhe und eine sämtliche Breite. West & South hingegen erhalten eine bevorzugte Breite und die verfügbare Höhe. Die mittig befindliche Zone Center erhält die restliche Größe. Die Platzierung wird automatisch geregelt, sodass sich der Programmierer um diese nicht kümmern muss6.

2.2.2 FlowLayout

Das FlowLayout ordnet die Komponenten nebeneinander an. Sollte die Komponente nicht in die Zeile passen, dann bricht das FlowLayout automatisch um, sodass Größe des Fensters und Positionierung der Komponenten wieder passen. Die Ausrichtung der Komponenten kann dabei mittels FlowLayout.LEFT bzw. RIGHT oder CENTER bestimmt werden7.

2.2.3 GridLayout

GridLayout ist ein verbreiteter und relativ einfach zu implementierender Layoutma- nager, welcher gerne verwendet wird. GridLayout ordnet dabei die Komponenten in einer Tabelle an. Allerdings muss der Programmierer hier die Anzahl der Zeilen und Spalten bestimmen. Werden weniger Zeilen als benötigt bestimmt, ordnet GridLayout die weiteren Komponenten selbstständig an und verschiebt diese in die nächste Zeile. Die Anordnung der Komponenten wird dabei durch die Reihenfolge beim Hinzufügen der Komponenten festgelegt8.

2.2.4 BoxLayout

Beim BoxLayout findet die Anordnung der Komponenten horizontal sowie vertikal statt. Dabei wird die Anordnung mittels den Methoden BoxLayout.X_AXIS für die Ausrichtung an der X-Achse sowie mittels BoxLayout.Y_AXIS für die Ausrichtung an der Y-Achse, vorgenommen9.

2.2.5 GridBagLayout

Das GridBagLayout ist eine Erweiterung des GridLayouts, welches jedoch komplexer, aber auch flexibler ist. Wie auch beim GridLayout findet beim GridBagLayout die Ein- teilung der Komponenten in Zeilen und Spalten statt. Unterschiedlich ist jedoch, dass die Zeilen und Spalten individuelle Größen haben können, sodass sich dadurch mehr Flexibilität bei der Anordnung und Gestaltung der einzelnen Komponenten ergibt10.

2.3 Steuerelemente

Um eine GUI zu erstellen werden unterschiedliche Elemente zur Interaktion mit dem Benutzer verwendet. Java Swing stellt eine vielzahl von Elementen, je nach Verwen- dungszweck, zur Verfügung11. Die folgenden Elemente wurden in der erstellten An- wendung verwendet. Zudem wurde ein JTable Element verwendet, welches aber nicht im Detail in dieser Arbeit vorgestellt wird, da es Teil einer seperaten Aufgabenstellung ist12.

2.3.1 JLabel

Ein JLabel von der zugehörigen Klasse javax.swing.JLabel kann dazu verwendet werden einen einfachen Text oder eine Grafik als Icon darzustellen. Als Text kann auch ein mit Hypertext Markup Language (HTML) formatierter Text dargestellt werden. Zudem kann es auch zur Beschriftung von Eingabefeldern verwendet werden. Ist das JLabel einer Komponente zugeordnet, ist die Zuweisung eines Tastenkürzels möglich. Dies erhöht die Usability der GUI-Anwendung erheblich13.

2.3.2 JButton

Ein einfacher Button kann mit der Klasse javax.swing.JButton realisiert werden. Dieser Button kann Text oder auch eine Grafik enthalten. Im Gegensatz zu einem JToggleButton, welcher mehr einem Schalter ähnelt, wechselt ein JButton nach dem Drücken mit der Maus, immer wieder in seinen ursprünglichen Zustand zurück. Ein Button gehört zu den wichtigsten Steuerelementen bei der GUI-Programmierung14. Um auf die Benutzerinteraktion reagieren zu können, kann dem Button ein ActionListener zugewiesen werden. Mittels diesem ActionListener können verschiedene Aktionen, zum Beispiel das Drücken des Buttons, ausgewertet werden1516.

2.3.3 JTextField

Ein JTextField ist die einfachste Komponente zur Eingabe von Freitexten. Dabei zeigt es einen unformatierten und einzeiligen Bereich zur Texteingabe an. Jeder Tastendruck löst einen ActionEvent aus, dadurch ist es möglich die Eingaben zu filtern und während der Benutzerinteraktion sofort Rückmeldungen zu nicht validen Eingaben tätigen. Seit Java 1.4 gibt es dafür eine Erweiterung, namens JFormattedTextField. Diesem Textfeld können Formatierungsobjekte zugewiesen werden. Dadurch ist es möglich in kürzester Zeit einfache Validierungen, zum Beispiel nach Datum oder von Geldbeträgen zu rea- lisieren17.

2.3.4 JSpinner

Der JSpinner wurde in Version 1.4 mit aufgenommen und ist eine Kombination aus Textfeld sowie zwei Buttons zum Erhöhen beziehungsweise Verringern des Wertes. Die Komponente unterstützt drei verschiedene Datenmodelle. Das SpinnerNumberModel zur Anzeige von Zahlen, das SpinnerDateModel für Datumsangaben und das SpinnerListModel für eine Liste von unterschiedlichen Werten18.

2.3.5 JComboBox

Die Klasse JComboBox stellt ein einfaches Pulldown-Menü dar. Beim Klick auf das Element klappt dieses nach unten auf und der Benutzer kann eine Auswahl treffen. Dieses Element eignet sich vorallem wenn aus mehreren Werten einer exklusiv vom Benutzer ausgewählt werden soll19. Ein sehr weit verbreitetes Beispiel zum Einsatz- zweck einer JComboBox, ist in Texteditoren zum Einstellen der Schriftgröße zu finden.

2.3.6 JTabbedPane

Eine Layoutgruppierung kann mit der JTabbedPane erstellt werden. Dabei kann auf die einzelnen Komponenten über die Registerkarten, den sogenannten Tabs, zugegrif- fen werden. Dies ermöglicht eine schnelle und übersichtliche Navigation zwischen den Komponenten. Diese Darstellungsform erfreut sich mittlerweile sehr großer Beliebt- heit und wird bei moderenen Webbrowsern implementiert, um mehrere Webseiten in eigenen Tabs öffnen und im Anschluss bequem zwischen ihnen hin und her wechseln zu können20.

3 Anwendungsbeschreibung

Die erstellte Anwendung wurde in der Programmiersprache Java21 implementiert. Zur Erstellung der GUI wurden die bereits in den Grundlagen erörterten Steuerelemen- te verwendet. Für einen sauberen und auch sicheren Programmierstil gibt es für un- terschiedliche Problemstellungen mehrere Programmiervorlagen, die sogenannten De- sign Patterns. Für GUI-Anwendungen hat sich das Model View Controller (MVC) Pat- tern etabliert22. Damit erfolgt eine klare Trennung des Programmcodes in drei Teile, welche für einen übersichtlichen und sauberen Programmcode sorgt. Dies bringt gera- de bei größeren Programmen und bei mehreren Programmierern einen entscheidenden Vorteil mit sich. Nichtsdestotrotz sollte auch bei kleineren Programmen bereits auf die- ses Muster zurückgegriffen werden, da eine spätere Umstellung, sollte das Programm wachsen, sehr großen Aufwand mit sich zieht. Die Folge wird in den meisten Fällen sein, dass die Anwendung komplett neu geschrieben werden muss. Die drei Teile des MVC Pattern teilen sich in das Model, dem View und dem Controller ein. Die folgende Abbildung zeigt das wechselnde Zusammenspiel dieser.

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 1: MVC Design Pattern. Quelle: [MVC, Wikipedia, 2014]

Der Controller ist das Zwischenstück zum Datenmodel und der View-Schicht. Ein Be- nutzer greift immer auf einen Controller zu. Dieser ruft Daten ab oder manipuliert die- se innerhalb des Models, welches für die Datenhaltung zuständig ist. Ein Datenmodel kann so implementiert werden, dass eine darunterliegende Datenbank transparent in- tegriert und für den Controller diese völlig irrelevant ist. Änderungen an den Daten im Model ziehen Änderungen am View mit sich. Die View-Schicht, in dieser Anwendung die Swing GUI, bereitet die Daten aus dem Model in eine für den Benutzer freund- liche Oberfläche auf. Dieser Kreislauf wiederholt sich mit jeder Benutzerinteraktion an der Anwendung. Zudem kann der Controller kleinere Änderungen direkt dem View übergeben23.

3.1 Controller

Die Klasse MainController stellt den Controller innerhalb der Anwendung dar24. Die Klasse implementiert das Interface eines ActionListener und kann dadurch die Be- nutzerinteraktionen auswerten. Dadurch muss der MainController beim Initialisieren der MainView Klasse sich selbst mittels this dem Konstruktor übergeben. Die zweite Schicht, das Model, wird mit der Artikelverwaltung Klasse instanziiert. Diese Klas- se enthält eine Methode initDBData, mit welcher die Daten erstmals geladen werden können. Des Weiteren wird dem Model der View als Observer zugewiesen. Ein Obser- ver ist ein weiteres Design Pattern, welches im nächsten Unterkapitel des Models im Detail erörtert wird. Der View stellt über ein definiertes Interface, die Java Klasse MV- CViewInterface, die benötigten Methoden bereit, um mit ihm interagieren zu können. Innerhalb der überschriebenen, vom ActionListener definierten Methode, actionPerfor- med reagiert der Controller auf folgende Benutzerinteraktionen am View. Einen neuen Artikel hinzufügen, damit werden die Daten des neuen Artikels ausgelesen und dem Datenmodell übergeben. Die einfache Abbrechen Funktion leert lediglich die Eingabe- felder des neuen Artikels. Eine Löschen Funktion wird über die Spinner Komponente und die Tabellenanzeige ermöglicht. Letztere bietet zudem die Möglichkeit der Mehr- fachauswahl zum Löschen von Artikeln. Die letzte Methode bietet die Möglichkeit, die Tabellenanzeige anhand der verfügbaren Spalten zu sortieren.

3.2 Model

Für die Datenhaltung wurde die freie Structured Query Language (SQL)-Datenbank MySQL verwendet. Java bietet mit Java Database Connectivity (JDBC) eine komfor- table Möglichkeit zum Zugriff auf verschiedenste Datenbanktypen. Zum Zugriff auf die Datenbank muss für jeden Datenbanktyp ein JDBC Treiber implementiert wer- den25. Dieser steht zum Download auf der Herstellerseite bereit. Das Model besteht zur einfacheren Übersichtlichkeit aus drei Java-Klassen. Die Klasse Artikel dient als Datenspeicher für einen Artikel aus der Datenbank und beinhaltet alle Attribute analog zum Aufbau der Datenbanktabelle. Zudem stellt sie die benötigten Getter und Setter Methoden für die Attribute zur Verfügung. Mit der toString Methode kann das Objekt bequem ausgegeben werden und der Name des Artikels wird dabei zurückgegeben. Für die Konfiguration und den Aufbau der Datenbankverbindung wurde die Klasse Daten- bank erstellt. Die Klasse wurde nach dem Singleton Pattern implementiert. Dies bringt den Vorteil mit sich, dass bei mehreren Zugriffen auf das Objekt immer die gleiche Datenbankverbindung benutzt wird26. Beim ersten Instanziieren der Klasse wird die Verbindung zur Datenbank aufgebaut. Die Konfiguration der Datenbankverbindung wird über den String DBURL durchgeführt. Über die Methode getConnection kann das Connection Objekt zur weiteren Interaktion mit der Datenbank angefordert wer- den. Die Klasse Artikelverwaltung ist für den Controller der zentrale Zugriff auf die darunterliegende Datenbank. Die Klasse wurde mit Observer Pattern implementiert. Dieses Pattern gehört zur Kategorie Verhaltensmuster und mit ihm können Änderun- gen an andere Objekte übergeben werden27. Dies wird mit der Methode notfiyObervers angestoßen. Jeder registrierte Observer muss das Inferface Observer implementieren und bei einer Änderung wird die dazugehörige Methode update aufgerufen. Dabei ist es möglich mehrere Observer zu registrieren.

[...]


1 [Ullenboom, 2011] Seite 1013 - 1020

2 [Steyer, 2014] Seite 7 - 9

3 [Habelitz, 2014] Seite 263 -264

4 [Heinisch et al., 2010] Seite 818 - 819

5 [Heinisch et al., 2010] Seite 852 - 853

6 [Heinisch et al., 2010] Seite 856 - 858

7 [Heinisch et al., 2010] Seite 853 - 855

8 [Heinisch et al., 2010] Seite 855 - 856

9 [Heinisch et al., 2010] Seite 864 - 866

10 [Heinisch et al., 2010] Seite 860 - 864

11 [Ullenboom, 2011] Seite 1015 - 1018

12 [Heinisch et al., 2010] Seite 891 - 964

13 [Heinisch et al., 2010] Seite 891 - 964

14 [Heinisch et al., 2010] Seite 891 - 964

15 [Ullenboom, 2011] Seite 1051 - 1054

16 [Heinisch et al., 2010] Seite 867 - 877

17 [Heinisch et al., 2010] Seite 891 - 964

18 [Heinisch et al., 2010] Seite 891 - 964

19 [Heinisch et al., 2010] Seite 891 - 964

20 [Heinisch et al., 2010] Seite 891 - 964

21 [Java Dokumentation, Orcale, 2014]

22 [Heinisch et al., 2010] Seite 822 - 832

23 [Siebler, 2014] Seite 48

24 [Heinisch et al., 2010] Seite 877 - 882

25 [Heinisch et al., 2010] Seite 1072 - 1074

26 [Siebler, 2014] Seite 1 - 18

27 [Siebler, 2014] Seite 35 - 50

Ende der Leseprobe aus 22 Seiten

Details

Titel
Datenbankgestütztes Artikelverwaltungssystem mit Java
Untertitel
Vertiefte Programmierkonzepte in Java mit Beispielen
Hochschule
AKAD University, ehem. AKAD Fachhochschule Stuttgart
Note
2,0
Autoren
Jahr
2014
Seiten
22
Katalognummer
V369012
ISBN (eBook)
9783668473775
ISBN (Buch)
9783668473782
Dateigröße
999 KB
Sprache
Deutsch
Schlagworte
Java, programmieren, programmierkonzepte, datenbank, datenbankgestützt, java und datenbank, sql, java und sql, MVC, model view control, MVC architektur, programmierbeispiele
Arbeit zitieren
Eugen Grinschuk (Autor:in)Daniel Falkner (Autor:in), 2014, Datenbankgestütztes Artikelverwaltungssystem mit Java, München, GRIN Verlag, https://www.grin.com/document/369012

Kommentare

  • Noch keine Kommentare.
Im eBook lesen
Titel: Datenbankgestütztes Artikelverwaltungssystem mit Java



Ihre Arbeit hochladen

Ihre Hausarbeit / Abschlussarbeit:

- Publikation als eBook und Buch
- Hohes Honorar auf die Verkäufe
- Für Sie komplett kostenlos – mit ISBN
- Es dauert nur 5 Minuten
- Jede Arbeit findet Leser

Kostenlos Autor werden