"Katalog"-Anwendung in Java eine gute Idee?

Survivor

Mitglied
Hallo,

ich habe schon von der Schule aus einiges von Java gesehen. Nun möchte ich auch einmal etwas größeres selbst schreiben, und zwar eine Anwendung für Rezepte. Das Ganze soll dann eine Oberfläche samt Datenbank haben, damit die Kochrezepte gesucht und schön dargestellt werden können.

Meine Fragen gehen also in diese Richtung:
1. Womit lässt sich eine schöne Oberfläche zeichnen, die auch programmiertechnisch nicht ZU schwierig umsetzbar ist? Mir fallen nur Swing oder AWT ein, wobei die Anwendungen da vom optischen her nicht sonderlich viel hermachen.

2. Ich habe ca. 25.000 Rezepte einzutragen. Jedes Rezept besteht aus mehreren Strings/Integern + 1-2 Bildern. Muss ich zwangsweise auf eine externe Datenbank zugreifen oder gibt's da auch eine vernünftige Lösung, die der Benutzer lokal einsetzen kann?
 
H2 ist für dieses Vorhaben sicher keine schlechte Wahl. Der Katalog öffnet die Datenbank mit "FILE:/c:/Dir/Dbname" (ConnectionString) und startet zusätzlich den TCP-Server. Dann kann man die Datenbank auch gleichzeitig von außen ansehen/prüfen.

Ich habe eine ähnliche Anwendung laufen (allerdings als Weblösung). Dabei werden ca. 15.000 Nodes bzw. die dazugehörigen html-Seiten und in meinem Fall auch die 60.000 Einzelartikel in der H2 Datenbank gespeichert (ca. 400 MB). Die Seiten selber werden in den Feldtyp CLOB (Character Large Object) gespeichert. Die Bilder habe ich im Filesystem liegen. Theoretisch könnte man diese auch in der Datebank (BLOB) speichern - da sehe (spez. bei der Webanwendung) aber keinen Vorteil.

Die Volltextsuche habe ich noch über eine eigene RAM-Instanz gelöst. Mittlerweile bietet H2 auch eine Volltextsuche an - eine eigene - oder eine mit Lucene.

Hier noch mein Katalog.
 
Was ist denn die "bessere" Oberfläche? Ich möchte eine schöne (lokale) Anwendung haben, die nicht alzuschwer zu designen ist.

@ll: Danke für die bisherigen Antworten. Werde h2 als Emblemed Database einsetzen!
 
Naja, wenn Java und lokal, dann bleibt swt, swing und awt. Wobei ich dir nur zu den ersten beiden raten würde, da sie zeitgenössischer aussehen (bei Swing hast du zusätzlich die Möglichkeit verschiedene Look And Feels anzubieten).

Zu einer Datenbank würde ich dir auf alle Fälle raten, da die in der Regel durch APIs gut zu "bedienen" sind. Wenn du selbst entscheiden möchtest, wie die Daten gespeichert werden, dann hast du auf alle Fälle viele Zeilen Code mehr und hast wahrscheinlich nicht annähernd die Performance einer richtigen DB.

Da es eine lokale Anwendung ist, könnte sogar db4o sehr gute Dienste leisten und ist vollständig und einfach unter Java anzusprechen (legt die Daten in ein File) ... sie speichert einfach die Objekte (also dein Rezept)
 
@freez: h2 ist doch eine Datenbank oder wie meinst du das? Naja, die Daten sollen halt ein einziges Mal gespeichert und dann halt abgerufen werden. Editieren soll ein Benutzer nicht können.
 
Ja, darum geht es ja. 😀
Ist ja kein Problem. Nur die Möglichkeit zur Edition solltest du schon anbieten, irgendwann wird sich ja etwas ändern. 😀
 
Naja, wenn Java und lokal, dann bleibt swt, swing und awt. Wobei ich dir nur zu den ersten beiden raten würde, da sie zeitgenössischer aussehen
Swing setzt auf AWT auf und ist im Gegensatz zu SWT nicht nativ. Also sollte IMHO gar kein Plain AWT verwendet werden.
(bei Swing hast du zusätzlich die Möglichkeit verschiedene Look And Feels anzubieten).
Im Gegensatz zu SWT, welches native ist und darum so aussieht wie es halt in deinem System so aussieht... 😉
 
Ich persönlich bevorzuge Swing weil es weiterverbreitet ist und im JDK enthalten, auserdem sieht das neue Nimbus LaF echt geil aus, aber das ist geschmacksache.
Wenn dir GUI Programmierung mit Java zu kompliziert ist und es nicht unbedingt mit Java sein muss kann ich auch eine Browser GUI empfehlen: z.B. lokal ausgeführtes PHP auf einem XAMPP.
In XAMPP ist sowohl der Apache Server als auch PHP/Perl und MYSQL enthalten. Und alles vollkommen lokal und trotzdem mit der Möglichkeit es jederzeit ohne neuen Quellcode im Web zur verfügung stellen zu können.
 
1. Womit lässt sich eine schöne Oberfläche zeichnen, die auch programmiertechnisch nicht ZU schwierig umsetzbar ist? Mir fallen nur Swing oder AWT ein, wobei die Anwendungen da vom optischen her nicht sonderlich viel hermachen.

Das sind auch die beiden, die ich empfehlen würde.

- Swt das viele gut finden, ist eine eigene Plattformabhängige Bibliothek. D.h. wenn Du das Programm für Linux, Windows und MacOSX zur Verrfügung stellen willst, mußt Du für jedes Betriebsystem ein Paket "schnüren" in dem das entsprechende Swt-Binary fürs System auch zu finden ist.

- Andere in Java geschriebene Bibliotheken sind nicht so umfangreich und leistungsstark wie Swing. Außerdem gibt es dazu dann nicht so viel Informationen, Beispiele und Hilfe im Internet.

Somit bleiben nur AWT und das dadrauf aufsetzende Swing.
Wenn die Anwendung sehr schnell sein soll und Du nur ein Textfeld und ein Listenfeld brauchst, dann könnte auch AWT reichen.
Ansonsten ist Swing zu empfehlen. Vor allem, wenn Du Dir im Nachhinein noch überlegen solltest GUI-Features einsetzen zu wollen, die AWT nicht hat.

Grüße
theuserbl
 

Zurück
Oben