JavaFX Wie A4-Seite in meiner Anwendung repräsentieren

BigMemo007

Aktives Mitglied
Hallo Comunity,


ich möchte eine neue App bauen, die zwar technisch versierten, aber extrem IT unaffienen Handwerkern in meinem Bekanntenkreis, das Schreiben von Angeboten und Rechnungen so einfach wie möglich machen soll. Aktuell schreiben sie die in Word und Excel und müssen sehr viel immer wieder neu tippen. Komplizierte Software könnten sie nicht bedienen. Deswegen habe ich mir gedacht, eine App zu schreiben, wo man nur Kontakte, Arbeiten die angeboten werden und eine Materiallliste einpflegen kann. Aus diesen Daten sollen dann Angebote und Rechnung einfach erstellt werden können.

Ich bin noch in der Requirement-Phase und bei jetzt schon auftauchenden Problemen in der Lösungsfindungsphase. Ich möchte nach dem Wasserfallmodell arbeiten.

Meine Systeme:
Eclipse 2020-12
MAVEN
Java-FX für GUI
und für alles eigentlich offen solang JAVA


Meine Probleme die gelöst werden müssen, damit ich nachher mit dem Klassendiagramm anfangen kann:

1. Angebote und Rechnungen werden ja in DIN-A4 Größe an Kunden versendent. Wie kann ich ein DIN-A4-Papier in meiner App darstellen? Gibt es Bibilotheken im Maven-Rep für Java, die ich verwenden kann und mein Leben vereinfachen?

Wenn nicht, wie ist folgende Idee:

Eine Gridpane nehmen, die in A4-Größe (cm in Pixel umrechnen) machen und dort folgende Elemente als Label / TextArea hinzufügen:

-Ganz oben Kopfzeile (Label da eine Zeile)
-Dann Kundenadresse (TextArea)
-Rechts neben Kundenadresse eben ein Label mit Informationen über das Angebot oder Rechnung wie etwa Erstellungsdatum, Nr, usw (TextArea)
-Dann Arbeiten/Material und Preis (TextArea)
-unten die Kummulierung der Preise (Label)
-Danach ein Feld Für Umsatzsteuer (Label)
-ganz unten die Fußzeile (Label)

Das ganze soll normgerecht aufgebaut werden. Ich müsste mir ein schönes Angebots- und eine schöne Rechnungsvorlage nehmen, die Bereiche ausmessen und die Java-FX Komponennten entsprechen groß machen und positionieren. Die TextAreas müssen nicht beschreibbar sein. Den Inhalt holen sie aus der Kundenliste, Arbeitsliste und Materialliste heraus.

Oder habt ihr bessere Ideen?


2. Wie gebe ich dann dieses Angebot oder diese Rechnung an den Druckauftrag des Systems weiter? Der User soll dort dann, wenn er ein PDF-Dokument haben will den MS-PDF-Writer nehmen und wenn er drucken will, seinen installierten Drucker auswählen.


3. Wie kann ich den Inhalt von meinen Objekten (Kontakte, Angebote, Rechnungen, Arbeiten, Material) sicher geschützt, also kryptisch verpackt, auf der Festplatte sichern? Soll ich die Objekte in ArrayLists reinpacken? Aber ArrayLists in Java-FX sind nicht serialisierbar meines Wissens.


Ich habe grad das Gefühl, wenn ich eine Lösung für diese Hürden habe, dass ich die App meistern kann :)
 

mrBrown

Super-Moderator
Mitarbeiter
Ich möchte nach dem Wasserfallmodell arbeiten.
Ganz ganz starker Rat: Mach es nicht. Du wirst es soweiso ziemlich schnell über den Haufen werfen.

1. Angebote und Rechnungen werden ja in DIN-A4 Größe an Kunden versendent. Wie kann ich ein DIN-A4-Papier in meiner App darstellen?
Warum willst du denn mit JavaFX die ausgdruckte Rechnung nachbauen?

Grundsätzlich würd ich da zwei Anforderungen sehen: Eintragen der Daten (Kundenliste, Arbeitsliste und Materialliste nennst du ja selbst) und dann generieren der fertigen Rechnung.

Das Eintragen kann man doch über "schöne" Eingabemasken umsetzen ("Die TextAreas müssen nicht beschreibbar sein" klingt auch danach, als hättest du es geplant).
Das generieren der fertigen Rechnung kann dann direkt nach PDF passieren, und die PDF kann man dann anzeigen.

2. Wie gebe ich dann dieses Angebot oder diese Rechnung an den Druckauftrag des Systems weiter? Der User soll dort dann, wenn er ein PDF-Dokument haben will den MS-PDF-Writer nehmen und wenn er drucken will, seinen installierten Drucker auswählen.
Die PDF kannst du direkt in deiner Anwendung generieren.
"echtes" Drucken dann zB so: https://stackoverflow.com/questions/16293859/print-a-pdf-file-using-printerjob-in-java

3. Wie kann ich den Inhalt von meinen Objekten (Kontakte, Angebote, Rechnungen, Arbeiten, Material) sicher geschützt, also kryptisch verpackt, auf der Festplatte sichern? Soll ich die Objekte in ArrayLists reinpacken? Aber ArrayLists in Java-FX sind nicht serialisierbar meines Wissens.
Mit "kryptisch verpackt" meinst du verschlüsselt? Oder nur für den Nutzer nicht direkt les- und veränderbar?

Üblich wäre für sowas eine Datenbank, direkt Java-Objekte serialisieren ist eher unüblich.
 

mihe7

Top Contributor
Ich möchte nach dem Wasserfallmodell arbeiten.
Schauder. Das ist ein Relikt aus den 1960ern, längst tot und gehört sich mindestens genauso verboten wie Pong-Tutorials :)

Ich müsste mir ein schönes Angebots- und eine schöne Rechnungsvorlage nehmen, die Bereiche ausmessen
Neiiinnn, das ist in DIN 5008 genormt. Dazu findet man normalerweise genügend im Netz. Die aktuelle Fassung ist aus diesem Jahr (DIN 5008:2020), Du willst vermutlich Geschäftsbriefe nach Form B (für Fensterbriefumschläge) mit Informationsblock. Dafür ist PDF ja fast schon wie gemacht.
 

Samofan

Aktives Mitglied
Grundsätzlich würd ich da zwei Anforderungen sehen: Eintragen der Daten (Kundenliste, Arbeitsliste und Materialliste nennst du ja selbst) und dann generieren der fertigen Rechnung.
Würde ich auch so machen. Das würde Dir das Leben wahrscheinlich auch etwas einfacher machen.
Wie wäre es, wenn du eine Rechnungsvorlage mit JasperReports o.ä. erstellst und mit den Angaben aus der JavaFX Anwendung befüllst?
 

BigMemo007

Aktives Mitglied
Wie wäre es, wenn du eine Rechnungsvorlage mit JasperReports o.ä. erstellst und mit den Angaben aus der JavaFX Anwendung befüllst?
JasperReports hört sich super interessant an. Soweit ich es verstanden habe kann man mit dem JR-Editor seine Vorlage - in meinem Fall ein Angebot und eine Rechnung - bauen. Beim Bauprozess kann man Felder mit Variablen benennen. In Java erstellt man dann eine HashMap, die die Informationen, die auf die Vorlage kommen soll, z.B. auf das Angebot die Kundenadresse, beinhaltet. Hier ganz wichtig, der Key-Wert der HashMap muss genau mit der Variable von der Vorlage identisch sein. Dann mit dem JP-Objekt in Java die PDF erstellen lassen und als Datei ablegen lassen.

Ich sehe grad aber ein Problem. Die Posten in Angeboten oder Rechnungen sind leider nicht immer gleich in der Anzahl. Es wird bestimmt Rechnungen geben, die mehr Arbeiten und Materialien haben werden als andere. Da man in JR die Variablen statisch vergeben kann, swoeit ich das bis her sehen konnte, wird es problematisch. Daher meine Fragen:

1. Wie kann man Anzahl von Felder dynamisch vergeben?

2. Wenn Anzahl so hoch ist, dass eine Seite nicht ausreicht, kann JR auf Seite 2 gehen? Aber so, dass Kundenadresse, Datum, Ort, Nr, usw nicht nochmal mit gedruckt werden müssen.

3. Kann JR die Seitenanzahl mit aufdrucken?

4. Gbit es eine Vorlage für Angebote und Rechnungen, die opensource verwendet werden kann?
 

Samofan

Aktives Mitglied
Ich habe bis jetzt nur an bestehenden Projekten mit JasperReports gearbeitet aber ich glaube für so einen Use Case ist es perfekt geeignet (kenne auch leider keine Alternativen).
Die Vorlagen würde ich in JasperSoft Studio bauen. Es gibt wohl auch noch eine andere Software (iReport), die ich aber gar nicht kenne.
1. Wie kann man Anzahl von Felder dynamisch vergeben?
Es gibt verschiedene Bänder (Abschnitte) in einem JasperReport. Bänder, wie z.B. der Header wiederholen sich nicht. Es gibt aber auch Bänder, die sich wiederholen, wenn mehrer Variablen übergeben werden. Das ist bei Rechnungen der Fall, wenn es mehrere Posten gibt. Somit kannst du einstellen, welche Felder statisch sind und welche dynamisch.
2. Wenn Anzahl so hoch ist, dass eine Seite nicht ausreicht, kann JR auf Seite 2 gehen? Aber so, dass Kundenadresse, Datum, Ort, Nr, usw nicht nochmal mit gedruckt werden müssen.
Ja, diese sich immer wiederholenden Felder werden auf einer nächsten Seite einfach fortgeführt.
3. Kann JR die Seitenanzahl mit aufdrucken?
Ja, dafür gibt es eine Variable, die du einfach auf deine Seite legen kannst. Diese wird automatisch gefüllt.
4. Gbit es eine Vorlage für Angebote und Rechnungen, die opensource verwendet werden kann?
Da kann ich leider nichts zu sagen und auf die Schnelle habe ich nichts gefunden. Ich denke, es wird schwierig was nach DIN5008 zu finden.
 

BigMemo007

Aktives Mitglied
Vielen Dank für die Infos. Ich beschäftige mich aber wieder mit den Grundlagen von Java oder generell mit SW-Entwicklumg, um ein Zertifikat von LinedIn zu erhalten! Danach werde ich mich um meine Applikation weiter kümmern.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I JTable mit einem Button zu einer Detail Seite springen AWT, Swing, JavaFX & SWT 4
I Von Menü: Seite zu Seite springen (CardLayout) AWT, Swing, JavaFX & SWT 8
berserkerdq2 Mein Rechteck hat 4 Seiten, ich soll je nach dem, welche Seite berührt wurde, etwas ausführen, wie prüfe ich das? AWT, Swing, JavaFX & SWT 12
G JavaFX Scene ausdrucken nicht möglich, Seite leer AWT, Swing, JavaFX & SWT 5
I GUI, das verschiedene Panels hat (Von Seite zu Seite navigieren) AWT, Swing, JavaFX & SWT 7
P Zwei JTables auf eine A4-Seite mit einstellbaren Rändern AWT, Swing, JavaFX & SWT 9
M JavaFX Automatisches Aktualisieren der Seite AWT, Swing, JavaFX & SWT 26
S GUI Schließen Button auf der linken Seite AWT, Swing, JavaFX & SWT 2
W JavaFX Webview warten bis Seite geladen geladen ? AWT, Swing, JavaFX & SWT 0
J JavaFX Tabelle soll ganze Seite ausfüllen AWT, Swing, JavaFX & SWT 2
B Swing Form undecorated: Beim Bewegen geht die Maus immer automatisch zur linken Seite. AWT, Swing, JavaFX & SWT 7
M SWT Browser nur eine Seite erlauben AWT, Swing, JavaFX & SWT 3
P Dynamische Seite zum basteln für den User AWT, Swing, JavaFX & SWT 8
P Swing In JTable Header auch an der linken Seite AWT, Swing, JavaFX & SWT 2
T Aufbau einer Seite AWT, Swing, JavaFX & SWT 18
A Swing Text auf eine Seite an beliebigen Orten schreiben AWT, Swing, JavaFX & SWT 6
U Swing JPane und JScrollpane in JSplitpane-Seite: Scrollen funktioniert nicht AWT, Swing, JavaFX & SWT 3
S SWT Anzeigen einer lokalen HTML-Seite im Browser Widget über RAP nicht möglich AWT, Swing, JavaFX & SWT 3
M An die Seite sich verschiebende Pixeldaten AWT, Swing, JavaFX & SWT 9
G Etched Border nur an einer Seite einfügen AWT, Swing, JavaFX & SWT 16
G Swing JEdtitorPane und HTML Image Seite AWT, Swing, JavaFX & SWT 2
kodela AWT eine Seite - zweimal print() AWT, Swing, JavaFX & SWT 7
T HTML Seite neu laden mittels Applet AWT, Swing, JavaFX & SWT 2
A Probleme beim Drucken (Seite wird abgeschnitten) AWT, Swing, JavaFX & SWT 2
E Eine Seite eines Frames variabel anpassen lassen? AWT, Swing, JavaFX & SWT 10
G JTree: Panel/Frame auf der rechten Seite anzeigen! AWT, Swing, JavaFX & SWT 5
K Seite zum drucken einrichten AWT, Swing, JavaFX & SWT 2
E Größenänderung von nur EINER Seite einer SplitPane AWT, Swing, JavaFX & SWT 2
A " HTML-Seite in Swing " AWT, Swing, JavaFX & SWT 8
I JTabbedPane - Einzelnen Tab auf der rechten Seite adden AWT, Swing, JavaFX & SWT 2
G JTable/DefaultTableModel zur Seite scollen AWT, Swing, JavaFX & SWT 3
S [Druckproblem] String wird nicht an Seite angepasst AWT, Swing, JavaFX & SWT 10
R JSplitPane (linke und rechte Seite) AWT, Swing, JavaFX & SWT 4
R HTML Seite in Java anzeigen AWT, Swing, JavaFX & SWT 2
Redeason Objekte in meiner GUI verschieben AWT, Swing, JavaFX & SWT 1
B Was würden Profis an meiner Klasse verbessern? AWT, Swing, JavaFX & SWT 1
B JavaFX Verständnisfrage EventHandler<ActionEvent> Implementierung in meiner Klasse AWT, Swing, JavaFX & SWT 2
CptK Wieso wird nur ein Teil meiner Buttons angezeigt? AWT, Swing, JavaFX & SWT 1
Z Möglichkeit mit Listerners die Farbe meiner Objekte zu ändern AWT, Swing, JavaFX & SWT 15
Q Swing Neuberechnung meiner SwingComponents AWT, Swing, JavaFX & SWT 4
SexyPenny90 JLabel liegt unter meiner Turtle AWT, Swing, JavaFX & SWT 5
D Drag-Action: Innerhalb meiner View? AWT, Swing, JavaFX & SWT 3
D Seltsames Verhalten meiner CheckBoxen AWT, Swing, JavaFX & SWT 7
E Problem mit meiner GUI/GridbagLayout AWT, Swing, JavaFX & SWT 2
E Starten meiner GUI, aber wie? AWT, Swing, JavaFX & SWT 7
G Seltsames Phänomen beim starten meiner Applikation AWT, Swing, JavaFX & SWT 8
L vermutlich Problem in meiner for-Schleife AWT, Swing, JavaFX & SWT 6
Z Innere Frame in meiner JFrame. AWT, Swing, JavaFX & SWT 4
MiMa Fonts, Icons, Bilder in JavaFX Anwendung AWT, Swing, JavaFX & SWT 5
I JavaFX JavaFx-Anwendung für die Erstellung einer Windows-Anwendung? AWT, Swing, JavaFX & SWT 6
P Swing Anwendung von LayeredPanel AWT, Swing, JavaFX & SWT 6
J Netbeans die JavaFX-Anwendung wird nicht ausgeführt AWT, Swing, JavaFX & SWT 16
tommybalbor JavaFx Anwendung klappt nicht für macOs Nutzern, wenn ich zwei dependecies bei maven hinzufüge AWT, Swing, JavaFX & SWT 6
thor_norsk JavaFX Anwendung stürzt ab AWT, Swing, JavaFX & SWT 4
H Fehler: Zum Ausführen dieser Anwendung benötigte JavaFX-Runtime-Komponenten fehlen AWT, Swing, JavaFX & SWT 44
G JavaFX Steuerung bzw. Test von externer JavaFX Anwendung (liegt nur als jar vor) AWT, Swing, JavaFX & SWT 9
N JavaFX Vor beenden der Anwendung durch klicken von X Dialog zeigen AWT, Swing, JavaFX & SWT 1
beli3ver JavaFX Anwendung startet nicht, kann den Fehler nicht finden (Exception in Application start method) AWT, Swing, JavaFX & SWT 1
B JavaFX JavaFX Anwendung deployen (entw als runnableJAR oder exe-Datei) AWT, Swing, JavaFX & SWT 15
OSchriever Anwendung aus SystemTray öffnen AWT, Swing, JavaFX & SWT 29
G JavaFX SplitPane Anwendung - Controller Probleme AWT, Swing, JavaFX & SWT 5
T Anwendung mit X schliessen AWT, Swing, JavaFX & SWT 1
L JavaFX OpenJFX13 Anwendung exportieren AWT, Swing, JavaFX & SWT 7
D PDF Viewer in SWT-Anwendung AWT, Swing, JavaFX & SWT 8
O Basics - Anwendung erstellen mit mehreren Szenen AWT, Swing, JavaFX & SWT 1
G JavaFX JavaFX-Dialog aus einer Nicht-JavaFX-Anwendung heraus AWT, Swing, JavaFX & SWT 1
A JavaFX Anwendung in Jar Datei AWT, Swing, JavaFX & SWT 8
D Swing Anwendung ohne JPanel erstellen AWT, Swing, JavaFX & SWT 1
J Splashscreen Start Anwendung AWT, Swing, JavaFX & SWT 14
MiMa Programmeinstellungen für Anwendung?? AWT, Swing, JavaFX & SWT 54
L JavaFX LoadException beim Laden von JavaFX Anwendung AWT, Swing, JavaFX & SWT 6
I JFileChooser mit System L&F bei anderem L&F der eigtl. Anwendung AWT, Swing, JavaFX & SWT 0
Blender3D Meine Swing Anwendung läuft unter Windows 10 und Ubuntu aber nicht auf Windows 7 AWT, Swing, JavaFX & SWT 16
L JavaFX PdfViewer für JavaFX Anwendung AWT, Swing, JavaFX & SWT 6
D JafaFX Anwendung beenden AWT, Swing, JavaFX & SWT 11
B Wie erstelle ich eine JavaFX Anwendung von diesem Code? AWT, Swing, JavaFX & SWT 3
javampir Swing repaint in JavaFX Anwendung AWT, Swing, JavaFX & SWT 3
X Anwendung skalierbar AWT, Swing, JavaFX & SWT 3
D JavaFX Erkennen wenn eine Anwendung geschlossen wird und etwas tun? AWT, Swing, JavaFX & SWT 4
D JavaFX Anwendung hängt sich permanent auf AWT, Swing, JavaFX & SWT 6
L JavaFX Java FX Anwendung nach MVC mit Observer Pattern AWT, Swing, JavaFX & SWT 15
X Swing Anwendung regaiert auf keine Buttons mehr wärend while(scanner.hasNextLine()) ausgeführt wird. AWT, Swing, JavaFX & SWT 4
I Variabeln speichern in Desktop Anwendung AWT, Swing, JavaFX & SWT 2
V Anwendung im Vollbild zentrieren AWT, Swing, JavaFX & SWT 13
A Swing Textübergabe innerhalb der Anwendung in unterschiedlichen Fenster AWT, Swing, JavaFX & SWT 8
GreyFox JLabel in laufender Anwendung erzeugen AWT, Swing, JavaFX & SWT 6
J JavaFX Anwendung läuft in eclipse, nicht aber exportiert AWT, Swing, JavaFX & SWT 2
P Anwendung kommt nach minimieren nicht mehr in den Vordergrund AWT, Swing, JavaFX & SWT 5
K 3D-Grafik Anwendung von Java in Gnuplot AWT, Swing, JavaFX & SWT 3
M SWT Anwendung in der Symbolleiste verstecken AWT, Swing, JavaFX & SWT 5
B SWT Redesign SWT Anwendung AWT, Swing, JavaFX & SWT 7
M Java anwendung VOR vollbildspielen (schon wieder...) AWT, Swing, JavaFX & SWT 5
S Swing Lauftext Performance Probleme, in größerer Anwendung AWT, Swing, JavaFX & SWT 6
VfL_Freak Swing Zweiter Monitor von Java-Anwendung ansprechbar ?? AWT, Swing, JavaFX & SWT 2
S Swing Ist meine gute Java Anwendung vorgängig? AWT, Swing, JavaFX & SWT 20
P Klassenaufbau bei komplexerer GUI Anwendung AWT, Swing, JavaFX & SWT 14
S Java GUI Anwendung ohne Konsole starten AWT, Swing, JavaFX & SWT 6
qwerqer Swing Anwendung soll blinken (Taskleiste) AWT, Swing, JavaFX & SWT 3
R Java Desktop Anwendung erstellen. Womit? AWT, Swing, JavaFX & SWT 3
eLogic Fullscreen anwendung aus der man nicht rauskommt AWT, Swing, JavaFX & SWT 37

Ähnliche Java Themen

Neue Themen


Oben