Swing GUI / Webapp..... benötige ein paar Tips / Ratschläge

internet

Top Contributor
Hallo zusammen,

ich möchte mir ein kleines Tool schreiben, was zwingend auf dem Client laufen muss und nicht auf dem Server.
U.a. weil ich einen Pfad auf dem Client angeben möchte, in welchem dann z.B. Bilder sich befinden...

Kurze Zusammenfassung was ich vor habe:
  • User definiert einen Pfad auf seinem Rechner, in dem Bilder liegen / liegen werden
  • Mittels einem File - Watcher wird geprüft, ob es neue Bilder in diesem Order gibt
  • Wenn ja, wird das Bild an einen Webservice (Third Party App) gesendet
  • Es wird ein paar Einstellungsmöglichkeiten geben (Pfad auswählen, Watcher ein / ausstellen etc.)
  • Ggf. später dann noch eine eigene Web Bildergalerie, aber das wäre erst in Version 2 angedacht.
Ich bin in Swing GUI nicht wirklich drin und ziehe dafür eine WebApp vor.

Folgendes stelle ich mir vor:
  • User klickt auf ein Icon auf dem Desktop
    • Im Hintergrund startet ein Applikationsserver (z.B. einen schlanken Jetty)
    • Sobald der App - Server hochgefahren ist, wird der Standardbrowser mit einer ensprechenden URL aufgerufen. Die URL soll dann der Aufruf auf meine Web - Applikation sein
Fragen:
  • Wie liefere ich das an den Endkunden aus? Ist das eine .jar - Datei? In dieser .jar muss auch die .war für die Applikation sein, oder?
    • Geht das überhaupt, denn ich benötige doch auch ein Installationsverzeichnis (um bspw. eine kleine Datenbank zu haben)
  • Wie kann ich der .jar ein Icon geben, das meine Branding ist?
  • Eventuell wäre auch eine kleine GUI nötig um den App - Server zu starten. Also ein Fenster, das nur den Button "Start Applikation" hat, und dieser dann den Aufruf in die WebApp startet. Zudem könnte man einen Ladebalken anzeigen wenn der Applikationsserver startet.
  • Eine Datenbank benötige ich auch noch. Gibt es hier Möglichkeiten / Datenbanken, die man nicht explizit installieren muss (wie zB MySQL).

Über Tipps und Ratschläge würde ich mich freuen
 

kneitzel

Top Contributor
Das klingt extrem nach Overkill. Ich verstehe in keiner Weise, wieso es so ein Ansatz sein muss.

Wenn Du HTML/CSS/JavaScript bevorzugst, dann nutz es doch einfach. Es gibt genug Frameworks, um dies auf dem Desktop direkt laufen zu lassen. Sehr verbreitet ist z.B. Electron (https://www.electronjs.org/) welches z.B. auch von Visual Studio Code verwendet wird.
 

internet

Top Contributor
Wenn es andere Wege gibt, dann gerne...
Ich habe Know How in JSF und möchte dies auch für mein Vorhaben verwenden.
Geht das mit z.B. Electron?
 

kneitzel

Top Contributor
Direkt JSF nicht, aber mit Tools wie Electron entwickelst Du komplett in HTML/SS und JavaScript (z.B. mit einem Framework wir React oder Angular).

Aber JSF lokal auf einem Client laufen lassen zu wollen für eine Applikation, die das bisschen macht, das Du da skizziert hast, das finde ich etwas heftig. (Vielleicht ein Beispiel, wie das etwas auf mich wirkt: Ja, man kann einen Standard Brief mit einem großen Bagger auf einen riesigen Laster verladen, damit zu einem Briefkasten fahren um da den Laster abzukippen. Dann steigt man aus, hebt den Brief auf und steckt ihn in den Briefkasten. Das geht. Aber Sinn macht das nicht wirklich :) )

Wenn man das unbedingt machen wollte, dann geht das prinzipiell aber natürlich auch: Du erzeugst ein jar in dem alles enthalten ist also incl. dem Application Server. Um da ggf. weniger eigenen Aufwand zu haben, könnte man z.B. Spring Boot dafür nehmen.
JSF und Spring Boot kann man in Google suchen und dann stößt man auf Seiten wie:

Damit umfasst Deine Applikation aber einiges. Angefangen von dem Application Server der da mit drinnen ist über viele Framework Komponenten vom Spring Framework hin zu möglichen Sicherheitsproblemen, da Du einen Port öffnest - selbst wenn der nur lokal erreichbar ist.
 

kneitzel

Top Contributor
Ja, das scheint auch sowas zu machen. Da wird dann auch ein Tomcat mit integriert, aber Du willst ja nicht nur den Tomcat sondern auch eine entsprechende App mit allem drum und dran. Das willst Du dann vermutlich mit integrieren...

Das ist dann etwas, wo es einem Spring Boot evtl. etwas einfacher macht mit der stark vereinfachten Konfiguration und den vielen defaults, die da schon vorgegeben wurden.

Generell ändert das aber kaum etwas an der Thematik: Für eine relativ kleine Applikation baust du riesigen Konstrukte. In dem Link gibt es den embedded Tomcat, der dann einen Port öffnet und somit Zugriffe zulässt.
 

mrBrown

Super-Moderator
Mitarbeiter
ganz ehrlich: vergiss die Idee eines "lokalen Webservers mit Webapp" und setz das mit Swing/JavaFX/SWT oder Electron um. Du und deine Nutzer werden es dir danken. Für etwas wirklich rein lokales ist das deutsch sinnvoller als eine Webapps, die dafür einfach nicht vernünftig funktionieren wird.

Das, was du oben beschreibst, benötigt auch nur so minimales UI, dass man das Problemlos nach kurzer Einarbeitungszeit umsetzen kann. Als Webapp scheitert es dagegen schon ein einem vernünftigen File-Chooser...
 

kneitzel

Top Contributor
Dazu gibt es embedded Datenbanken. Je nach Sprache ist dann die eine oder andere Datenbank eher bevorzugt. Typische Vertreter sind sqlite, h2, hsqldb, ...
 

internet

Top Contributor
Irgendwo, wo du willst ;) Bis auf die Jar-File, in einer Jar kann man zur Laufzeit nichts speichern.
das ist ja genau, was ich nicht unbedingt möchte...
Wenn ich das richtig verstehe, muss der User dann einen Pfad angeben, wo die Daten gespeichert werden?

Ich möchte die .jar von Computer A nach B kopieren, ohne eine Installation durchzuführen...
 

mrBrown

Super-Moderator
Mitarbeiter
Wenn ich das richtig verstehe, muss der User dann einen Pfad angeben, wo die Daten gespeichert werden?

Ich möchte die .jar von Computer A nach B kopieren, ohne eine Installation durchzuführen...
Der Nutzer muss weder einen Pfad auswählen noch eine Installation durchführen.

Die Jar kann man auch ohne Probleme umziehen – die Daten muss man aber immer getrennt umziehen, egal ob Jar oder exe oder wasweißich.
 

kneitzel

Top Contributor
Der Nutzer muss weder einen Pfad auswählen noch eine Installation durchführen.
Wobei ich das so nicht sehen würde. Die Idee, einfach eine jar Datei mit Doppelklick zu öffnen, sehe ich nicht so trivial an. Es muss halt eine passende Java Installation vorhanden sein und so. Und wir sehen ja regelmäßig hier im Forum, worauf das hinaus läuft.

Was spricht dagegen, ein App-Image auf die Systeme zu kopieren / zu entpacken? Dann hat man unter Windows z.B. eine EXE, die direkt gestartet werden kann. Da kann man das Verzeichnis auch gerne auf beliebige Systeme kopieren und es funktioniert einfach (Weil die Abhängigkeiten deutlich geringer sind).

ok, aber dann muss man ja initital einen Pfad angeben?
Irgendwann muss man diesen ja definieren?
Den kannst Du doch definieren. Pack es z.B. in das Verzeichnis des Users oder so.
 

internet

Top Contributor
ganz ehrlich: vergiss die Idee eines "lokalen Webservers mit Webapp" und setz das mit Swing/JavaFX/SWT oder Electron um. Du und deine Nutzer werden es dir danken. Für etwas wirklich rein lokales ist das deutsch sinnvoller als eine Webapps, die dafür einfach nicht vernünftig funktionieren wird.

Das, was du oben beschreibst, benötigt auch nur so minimales UI, dass man das Problemlos nach kurzer Einarbeitungszeit umsetzen kann. Als Webapp scheitert es dagegen schon ein einem vernünftigen File-Chooser...
Was wäre hierfür der beste Einstieg? Ich versuche mich nun gerade mit dem "Window Builder":
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
KeTho1712 Java Swing: JTable standardmäßig füllen, sodass bei Start bereits Datensätze gespeichert sind Allgemeine Java-Themen 1
C Swing File[] als klickbare links in irgendeinem Swing Element Allgemeine Java-Themen 3
RalleYTN 2D-Grafik Bild ohne AWT, Swing und JavaFX rotieren Allgemeine Java-Themen 12
T Methoden Swing/Graphics/draw Allgemeine Java-Themen 6
Blender3D Java Swing Programm Windows 10 Autostart Problem Allgemeine Java-Themen 2
N GUI Interface, swing Allgemeine Java-Themen 7
J Swing Cursor.WAIT funktioniert nicht nach JFileChooser Allgemeine Java-Themen 1
V Input/Output Swing Icons in Jar Archiv laden Allgemeine Java-Themen 10
M for Schleife mit Swing Button abbrechen Allgemeine Java-Themen 7
O Swing + EJB Allgemeine Java-Themen 4
M JavaFX-Gegenstück zu Swing-Button-DoClick-Methode Allgemeine Java-Themen 5
eskimo328 Swing Client Anwendung für MAC OS (Update Routine) Allgemeine Java-Themen 6
T HTTP HttpWebRequest in Swing-Projekt nutzen Allgemeine Java-Themen 4
G Input/Output Manuelle Änderung von Wert in Swing Komponente bemerken! Allgemeine Java-Themen 2
K Threads - Swing - Synchronisation nötig? Allgemeine Java-Themen 8
J [SWING]Elegante Java Formular Lösung? XML? Allgemeine Java-Themen 4
M Swing-Frontend abhängig von ausgewähltem Objekt Allgemeine Java-Themen 4
I Swing Welche Swing Komponente soll ich nehmen? Allgemeine Java-Themen 2
L Web-Framework und Swing Framework o.ä Allgemeine Java-Themen 15
Y Anwendung starten(JAR) - Entscheidung Konsole oder Swing Allgemeine Java-Themen 5
A Swing paintcomponent komischer Fehler Allgemeine Java-Themen 6
algorismi Google maps in Java Swing Allgemeine Java-Themen 2
nrg Swing 2 Fragen zu Swing/AWT Allgemeine Java-Themen 7
T Jakarta Objekt (Excel Sheet) in Swing/SWT einbetten Allgemeine Java-Themen 3
D Organigramm mit GWT oder Swing Allgemeine Java-Themen 4
E Swing hilfe, JWindow mit eintrag in taskleiste Allgemeine Java-Themen 2
M Name der Swing Komponente Allgemeine Java-Themen 3
A awt und swing Allgemeine Java-Themen 3
MQue Swing-Componenten -> JavaBean Allgemeine Java-Themen 5
H Schrifthöhe berechnen / Swing Allgemeine Java-Themen 5
Z Swing vs Konsole Allgemeine Java-Themen 17
T Wo ist javax.swing.TransferHandler enthalten? Allgemeine Java-Themen 10
ARadauer Scaffolding für Swing Anwendungen Allgemeine Java-Themen 4
? Swing Anwendung aus Konsole starten Allgemeine Java-Themen 7
H Webseiten aus Swing Allgemeine Java-Themen 4
B SBCC - Swing Better Components Collection - downloadlink ? Allgemeine Java-Themen 5
G Feld Validierung in Swing Programm Allgemeine Java-Themen 6
G Swing Validierungs Framework Allgemeine Java-Themen 2
A Klappmechanismus bei Components(SWING) Allgemeine Java-Themen 8
M Swing funktioniert und funktioniert nicht Allgemeine Java-Themen 4
O Swing oder JMF Problem Allgemeine Java-Themen 11
M Swing JButton Farbe zurücksetzen Allgemeine Java-Themen 6
P RTF dynamisch machen (IText, Swing) Allgemeine Java-Themen 4
E Thread Fragen in Verbindung mit Swing Allgemeine Java-Themen 4
G java applet mit swing -> hundert prozent cpu auslastung Allgemeine Java-Themen 11
S Swing-Projekt zum Üben Allgemeine Java-Themen 5
I Servlet von einem Swing Based GUI aufrufen Allgemeine Java-Themen 5
D Spezielles Eingabefeld für Numerische Werte in Swing Allgemeine Java-Themen 2
G Swing vs. RCP Allgemeine Java-Themen 9
T substring() und Swing setText() Allgemeine Java-Themen 6
A Hibernate und Swing Allgemeine Java-Themen 2
S SWING Problem Allgemeine Java-Themen 2
S SWING UND AWT!Problem wegen Canvas! Allgemeine Java-Themen 29
clemente Swing Applikation killt kwin Prozess (unter Linux / KDE) Allgemeine Java-Themen 3
T Exception at javax.swing.plaf.basic.BasicTableUI.paintCell Allgemeine Java-Themen 3
S Swing - Problem mit Fenster-/Komponenten-Größe Allgemeine Java-Themen 3
M swing und windows registry Allgemeine Java-Themen 11
A Swing hat ein leicht verändertes Aussehen, wie findet ihrs? Allgemeine Java-Themen 28
M Was soll ich benutzen? Java2D, Java3D, Swing, AWT?? Allgemeine Java-Themen 21
U Frage zu Swing Allgemeine Java-Themen 4
B Hintergrund bei Swing Allgemeine Java-Themen 6
K swing frage (komisches swing) <-- manoman was für n threa Allgemeine Java-Themen 2
J Chatprog schließen,AWT + Swing Allgemeine Java-Themen 4
Z WebApp mit Java verbinden. Allgemeine Java-Themen 8
B Dateien / Bilder von "webapp" Ordner bekommen? Allgemeine Java-Themen 1
A Best Practice Seleniumtest als WebApp Allgemeine Java-Themen 6
M Javaprogrammierung in Webapp einbinden Allgemeine Java-Themen 7
F Benachrichtigungs-System Webapp Java Servlet Allgemeine Java-Themen 10
S WebApp MySQL Connection Loss Allgemeine Java-Themen 10
D Tomcat/Derby Webapp Allgemeine Java-Themen 7
N NetBeans WebApp - web.xml Allgemeine Java-Themen 4
D JavaEE-WebApp Pfad auslesen Allgemeine Java-Themen 3
Y Benötige Hilfe beim Programm Allgemeine Java-Themen 2
B benötige regex hilfe Allgemeine Java-Themen 4

Ähnliche Java Themen


Oben