Aus XML Datei FXML generieren

sparefroh

Mitglied
Hallo liebe Community :)


Ich muss für meine Diplomarbeit aus einer XML Datei eine lauffähige FXML Anwendung generieren lassen, nun wollte ich mal klein anfangen und einfach mit statischen Daten eine table etc erstellen.


Nur leider scheitere ich schon daran, weil ich leider nicht weiß wie ich eine fxml Datei generieren kann?

Könnt ihr mir vielleicht einen Tipp geben wo ich nachsehen kann bzw ob das überhaupst möglich ist?

Weil mir ist schon klar das ich eine bestehende fxml Datei hier in der Main Klasse so aufrufe:

Code:
 @Override
    public void start(Stage stage) throws Exception {
        Parent root = FXMLLoader.load(getClass().getResource("Sample.fxml"));
        
        Scene scene = new Scene(root);
        
        stage.setScene(scene);
        stage.show();
    }

Aber was ist wenn ich diese fxml Datei in der Main Klasse generieren will bzw dort dann das Layout definieren will?

Also eine Lösung wäre ja mit einem new File(samp.fxml) eine Datei zu erstellen und mit einem FileWriter den Aufbau der Seite zu definieren, aber geht das nicht auch eleganter?

Ich hoffe ich habe mein Problem verständlich formuliert :noe:

Vielen Dank für eure Hilfe

Liebe Grüße

Johannes
 
Zuletzt bearbeitet:

dzim

Top Contributor
Hast du denn schon einen Plat für die XML aus der du dann die FXML generieren willst? Ich meine zu zäumst das Pferd ja auch nicht von hinten auf, oder?
Die dann fertige Datei kann IMHO per Stream oder URL geladen werden, darum solltest du dir erst mal weniger Gedanken machen.

Ich überlege gerade, ob dir eine Transformation per XSLT von der XML in die FXML bereits helfen würde... Was denkst du?

Aber, zeige erst mal ein Beispiel für deine Eingabedatei - das Format da muss ja bereits stehen, alles andere wäre Blödsinn.
 

sparefroh

Mitglied
Danke für dir rasche Antwort!

Also die Struktur für die Xml Datei ist noch nocht definiert, als erstes sollte ich versuchen aus statischen Werten (anzahl an Buttons, Name der Buttons etc.) eine lauffähige Fxml Datei zu generieren.

Das ist das erste Ziel da der Rest der Arbeit daraus besteht aus der Xml die ensprechenden Werte wie z.B die Anzahl der Button etc. Auszulesen und die statischen Parameter dadurch zu ersetzen.

Leider habe ich jetzt gerade das Problem, dass ich wenn ich die .fxml Datei mit einem new File erstelle und mit einem Filewriter befülle, beim ersten Run der Application eine Nullpointer Exception bekomme, da er anscheinend während der laufzeit das gerade erstellte File nicht findet :/


Danke für deine Hilfe!

Liebe Grüße

Johannes
 

dzim

Top Contributor
Wie gesagt: Das hängt jetzt von dem Ansatz ab, den du gehen möchtest. Es ist gut, dass du dich mit der Struktur von FXML auseinandersetzt - immerhin hat dieses Format, soweit ich weiss, kein Schema. Ich persänlich würde wirklich erst einmal die Eingabestruktur definieren und dann weitermachen, aber das ist meine Ansicht.

Da du ein XML-File erstellen möchtest, solltest du vielleicht überlegen, ob der reine Ansatz über einen Filewriter wirklich sinnvoll ist. Davon einmal abgesehen, dass du einen PrintWriter nehmen solltest :) (der kann automatisch flushen, neue Daten an eine Datei anhängen oder diese überschreiben, und du kannst ihn wie System.err oder System.out verwenden - oder besser gesagt, diese beide sind jeweils PrintWriter, die aber eben nicht in eine Datei, sondern nur auf Standart-Out oder Error schreiben).
Entweder also verwendest du jetzt etwas "altbewärtes", aber leider auch etwas "unbequem" zu nutzendens: SAX- oder DOM-Parser oder verwendest ein moderneres Framework für Objektrelationales Mapping. In Java selbst gibt es JaxB, alternativen wären MOXy, EMF, Simpleframework (oder SimpleXML?).

Dort schreibst du dann so was wie (kein echter Code - nur Beispiel!):
Code:
@RootElement(name="StackPane")
SackPane {

    @Attribute(name="text")
    private String text;

    [...]

    @ElementList(name="children")
    private ArrayList<Object> children;

    [getter und setter]
}

Und hier liegt auch die Crux des ganzen: Wie weit willst du gehen, wass willst du alles unterstützen? Deswegen meine Frage, ob du nicht erst mal mit der Eingabe anfangen willst, denn sonst schreibst du dich hier Tot - selbst wenn du mit vernünftigen Vererbungshirarchien arbeitest (also Label erbt wie Button von Labeled oder so etwas, weil beide haben ein Text- und ein Graphic-Attribut (wobei letzteres wieder ein Node sein kann, u.s.w.).

Wenn es von seiten deines Doktorvaters oder Professors keine Vorgabe gibt, mach einen Vorschlag, denn sonst bist du als einsamer Hanswurst noch in einem Jahr damit beschäftigt (vielleicht übertrieben, aber du verstehst was ich meine):
Schage vor, was alles umgesetzt werden soll, baue ein Gerüst für die Eingabe-XML - ein paar Beispiele inklusive - parse sie und dann erst beginn mit dem Bau von FXML. Dein Titel sagt ja im Prinzip auch das aus :)

Ich hab die DA 2008 hinter mich gebracht und hab im wesentlichen gelernt, dass auch der Professor nicht immer wei', wo er eigentlich hin will mit dem Ganzen und dass es besser gewesen wäre, hätte ich mehr Eigeninitiative gezeigt und die Grenzen selbst festgesteckt.

Wo siehst du denn im Moment alles Baustellen, die dir Kopfschmerzen machen? XML allgemeint, Bauen eines internen Models, oder FXML?
 

sparefroh

Mitglied
Vielen vielen Dank für deine Mühe!


So ich habe jetzt gleich für Montag einen Termin ausgemacht um die Struktur der XML Datei festzulegen.

Ja da hast du recht ab und an wissen die Lehrer auch nicht genau was die beste Vorgehensweise ist, leider...


So ich werde dir kurz mal beschreiben um was es in meiner Diplomarbeit geht bzw was das Programm alles können muss.

Der Titel lautet

Frei konfigurierbare Terminalanwendung

Was soll es können?

Also auf der Startseite sollen beliebig viele Buttons sein ( wahrscheinlich 4-6Stk) und wenn man darauf klickt soll eine Tabelle dargestellt werden.

Bsp ein Button Essensauswahl der dann eine neue Seite (Tabelle) öffnet wo die Menüs der nächsten Woche dargestellt werden.


Wie soll dies realisiert werden?

Also grundsätzlich gibt es eine XML Datei woraus ich eine FXML Datei generieren soll.

(Es werden die Elemente Button und Table verwendet und vielleicht noch 1-2 andere Elemente, wird am Montag dann genau definiert.)

Also ich werde am Anfang die XML auslesen und Tabellen Buttons erstellen und die Tabellen dann mit Daten aus der Oracle und MS Datenbank befüllen.

Später soll dann noch ein Parser für die XML Datei gemacht werden der die XML Datei auf Ihre Gültigkeit prüft.

Und zum Schluss soll dann noch ein Benutzerinterface für das ändern der XML Datei erstellt werden.

Laufen wird das Ganze dann auf einem RasperryPI Terminal.

Das war das was es in etwa können muss (kurz und knapp).




Ich habe mich jetzt mal mit Java FX vertraut gemacht und wie beschrieben versucht mit statischen Werten eine Java fxml Datei zu generieren.

Leider macht das schon Probleme, da ich wenn ich mit dem new File einen Pfad/File erstelle und dieses dann mit einem FileWriter befülle eine NullPointer Exception bekomme (ich werde es jetzt dann natürlich mit einem PrintWriter machen, danke für den Tipp ;) )

Konkrekt bekomme ich nach einem Clean and Build und anschließenden ausführen diese Exception, aber das .fxml File ist erstellt.
Bei erneutem starten funktioniert es dann wunderbar.

Das Problem ist das wenn ich die Datei erstelle und gleich dann aufmachen will er diese nicht findet...

Bei erneutem Start der Application ist die Datei dann schon erstellt und dann gibt es keine Exception?!



Ein weiteres Problem von mir ist das Fenster Full Screen zu bekommen?

Momentan hab ich einfach die Größe des AnchorPane so definiert:

Code:
final static Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();

Aber da gibt es doch sicher auch eine Methode wo ich das AnchorPane FullScreenSize machen kann oder?


Ja momentan habe ich noch ein bisschen mit Java FX zu kämpfen, da das ganz neu für mich ist und wir das in der Schule nie verwendet haben, leider.



Ich danke dir nochmal für den Engagement.

Liebe Grüße

Johannes
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Jose05 JavaFX: eigene FXML-Datei für einen Button AWT, Swing, JavaFX & SWT 3
T FXML Datei in Java Code einbinden: javafx.fxml.LoadException AWT, Swing, JavaFX & SWT 2
M JavaFX Altes Fenster (FXML Datei) löschen AWT, Swing, JavaFX & SWT 16
F Java FX Von der Fxml Datei zum Objekt AWT, Swing, JavaFX & SWT 8
F FXML Datei aus dem SceneBuilder in Eclipse aufrufen AWT, Swing, JavaFX & SWT 1
H JavaFX aus der .fxml Datei einen Konstruktor bedienen AWT, Swing, JavaFX & SWT 3
7 JavaFX Verwendung einer ResizableCanvas-Klasse in fxml-Datei AWT, Swing, JavaFX & SWT 3
C JavaFX Auf Nodes einer FXML-Datei in start Methode zugreifen AWT, Swing, JavaFX & SWT 5
A Databinding in FXML-Datei AWT, Swing, JavaFX & SWT 1
V JavaFX - fxml-Datei laden (neben CSS) AWT, Swing, JavaFX & SWT 2
F Bilder zu ausführbarer Jar-Datei hinzufügen AWT, Swing, JavaFX & SWT 5
M Daten zufällig Einlesen aus einer Datei (binäres Format) AWT, Swing, JavaFX & SWT 7
ExceptionOfExpectation Mit einer laufenden GUI Applikation eine Datei in dem Rechner löschen AWT, Swing, JavaFX & SWT 2
melaniemueller Wortliste in einer Datei ablegen AWT, Swing, JavaFX & SWT 12
princess_sara1997 .jar Datei führt den Code nicht richtig aus AWT, Swing, JavaFX & SWT 19
Yonnig Lokale HTML-Datei in Java GUI rendern AWT, Swing, JavaFX & SWT 4
N JavaFX Javafx intelij Projekt zu ausführbaren jar Datei Machen AWT, Swing, JavaFX & SWT 1
BabySuna Swing Komponenten auslagern auf separate Datei AWT, Swing, JavaFX & SWT 8
J Java Datei durch CMD mit Parameter ausführen AWT, Swing, JavaFX & SWT 1
B JavaFX JavaFX Anwendung deployen (entw als runnableJAR oder exe-Datei) AWT, Swing, JavaFX & SWT 15
M Eine Datei auf den Apache Server hochladen - über das Menü im JavaProgramm AWT, Swing, JavaFX & SWT 7
VPChief Gibt es eine möglichkeit Dateien aus der jar datei zu kopieren? AWT, Swing, JavaFX & SWT 46
H Daten aus einer XML(x83-Datei) in einem JFrame anzeigen lassen AWT, Swing, JavaFX & SWT 9
MasterCaution Swing .jar Datei ausführen AWT, Swing, JavaFX & SWT 12
A Swing Datei lässt sich zwar speichern, aber nicht laden (Inhalt im JTextField anzeigen) AWT, Swing, JavaFX & SWT 18
K Probleme bei der Erstellung und Ausführung einer Jar Datei AWT, Swing, JavaFX & SWT 2
G Verknüpfung einer pdf Datei AWT, Swing, JavaFX & SWT 2
N Ausführbare Datei aus JavaFX Projekt erstellen AWT, Swing, JavaFX & SWT 22
L Bilder werden in exportierter Datei nicht geladen AWT, Swing, JavaFX & SWT 6
L Csv-Datei einlesen AWT, Swing, JavaFX & SWT 34
J *.jar öffnet PDF-Datei nicht AWT, Swing, JavaFX & SWT 35
A JavaFX Anwendung in Jar Datei AWT, Swing, JavaFX & SWT 8
J Swing JavaProgramm für Verschlüssen für eine Datei AWT, Swing, JavaFX & SWT 19
T .jar-Datei lässt sich unflexibler ausführen als über die IDE AWT, Swing, JavaFX & SWT 11
Kanda Sorata Inhalt einer .txt Datei einlesen und in ein Label einfügen (JavaFX) AWT, Swing, JavaFX & SWT 2
H Musik wird nach dem erstellen der .jar Datei nicht mehr abgespielt AWT, Swing, JavaFX & SWT 1
P JavaFX - XCF Datei von Gimp kann nicht angezeigt werden AWT, Swing, JavaFX & SWT 3
M Wie binde ich eine JavaFX ProgressBar an eine Datei Übertragung? AWT, Swing, JavaFX & SWT 2
F Pfad von eingelesener Datei AWT, Swing, JavaFX & SWT 10
Crazynet xls Datei in JTable AWT, Swing, JavaFX & SWT 3
D Objekte einer Oberfläche in eine Datei/Ordner speichern AWT, Swing, JavaFX & SWT 9
P Programm durch Dateiaufruf starten und Datei öffnen AWT, Swing, JavaFX & SWT 2
G .txt-Datei einlesen /formatieren in JTextfield ?? AWT, Swing, JavaFX & SWT 8
B ST Datei einlesen AWT, Swing, JavaFX & SWT 1
D JavaFX Jar Datei Signieren mit Java 8u45 AWT, Swing, JavaFX & SWT 2
M Datei mit Komponenten einbinden AWT, Swing, JavaFX & SWT 7
M Swing PDF Datei nach drucken nicht löschbar AWT, Swing, JavaFX & SWT 6
H 2D-Grafik .EPS Datei in .PNG konvertieren AWT, Swing, JavaFX & SWT 1
G Datei öffnen Dialog modifizieren AWT, Swing, JavaFX & SWT 13
F Swing Java Swing Array in Datei und wieder raus AWT, Swing, JavaFX & SWT 7
L 2D-Grafik PNG Datei in JLabel Array Problem AWT, Swing, JavaFX & SWT 4
B JAVAFX und CSS Datei in Eclipse AWT, Swing, JavaFX & SWT 4
3 Swing JList-Inhalt als verschlüsselte Datei schreiben und lesen AWT, Swing, JavaFX & SWT 1
S Swing Verzeichnis/Datei-Pfad in JTextField schreiben AWT, Swing, JavaFX & SWT 2
A JFileChooser Datei speichern AWT, Swing, JavaFX & SWT 4
T Aus JAVA.Jar GUI eine Flash-Datei machen AWT, Swing, JavaFX & SWT 3
A Datei weiterverwenden mit JFileChooser AWT, Swing, JavaFX & SWT 6
A AWT TTF-Datei zu Font-Objekt finden? AWT, Swing, JavaFX & SWT 5
Iron Monkey Nach Drag & Drop die Datei auf Komponent darstellen AWT, Swing, JavaFX & SWT 2
J JFileChooser - Datei speichern AWT, Swing, JavaFX & SWT 7
M Datei in jar öffnen AWT, Swing, JavaFX & SWT 11
W Funktion aus einer Java Datei in eine andere einbauen AWT, Swing, JavaFX & SWT 25
P Neue Datei erstellen in JPanel AWT, Swing, JavaFX & SWT 5
N Speicherpfad für Datei auswählen AWT, Swing, JavaFX & SWT 2
A JTextArea - Zeichenbegrenzung nach .txt Datei import AWT, Swing, JavaFX & SWT 6
N Applet JButton soll html Datei aus einem Ordner öffnen AWT, Swing, JavaFX & SWT 2
E Swing jTextPane Text datei anzeigen AWT, Swing, JavaFX & SWT 7
M Datei Speichern unter Dialog - SWT AWT, Swing, JavaFX & SWT 3
T SWT:Datei speichern / öffnen AWT, Swing, JavaFX & SWT 6
X Applet Java Applet Datei Ausführung AWT, Swing, JavaFX & SWT 9
J Bild aus Datei in BufferedImage laden AWT, Swing, JavaFX & SWT 4
M Swing XML Datei in JTable darstellen + verändern AWT, Swing, JavaFX & SWT 3
D Swing JTable in Datei speichern und laden AWT, Swing, JavaFX & SWT 3
J Fehler beim Gif Datei öffnen AWT, Swing, JavaFX & SWT 2
N Swing TreePath Datei öffnen AWT, Swing, JavaFX & SWT 7
B Datei öffnen Dialog AWT, Swing, JavaFX & SWT 9
kodela Swing JFileChooser und die Datei-Extension AWT, Swing, JavaFX & SWT 3
T Info Datei AWT, Swing, JavaFX & SWT 3
J ImageIcon: ZipException bei ungültiger PNG-Datei AWT, Swing, JavaFX & SWT 2
W jar Datei öffnen AWT, Swing, JavaFX & SWT 4
W TrayIcon mit jdic (Problem bei .jar Datei) AWT, Swing, JavaFX & SWT 3
D Nodes eines statischen JTrees sollen auf Anker (Textmarken) in einer HTML-Datei zeigen AWT, Swing, JavaFX & SWT 8
R Swing XML Datei in JTree, Problem mit Daten einlesen AWT, Swing, JavaFX & SWT 34
M AWT Datei auf server speichern und beschreiben AWT, Swing, JavaFX & SWT 7
P JMenu-Erweiterung in externer Datei AWT, Swing, JavaFX & SWT 5
M Text in txt-Datei in letzte Zeile schreiben? AWT, Swing, JavaFX & SWT 14
X Swing Inhalt einer JEditorPane in Datei abspeichern AWT, Swing, JavaFX & SWT 5
E Datei in TextArea anzeigen AWT, Swing, JavaFX & SWT 12
data89 Nimbus Look and Feel als gepackte JAR-Datei AWT, Swing, JavaFX & SWT 3
S Auswahlfenster: Datei beim Doppelklick öffnen AWT, Swing, JavaFX & SWT 8
N Swing Hintergrund Bild in JAR Datei AWT, Swing, JavaFX & SWT 2
I Swing .Jar Datei - funktioniert - nun als Applet AWT, Swing, JavaFX & SWT 13
M Text-Datei in einem JFrame öffen? AWT, Swing, JavaFX & SWT 2
Fadi Images in JAR Datei laden? AWT, Swing, JavaFX & SWT 5
K Hyperlink als Datei identifizieren AWT, Swing, JavaFX & SWT 2
S Jar-Datei funktioniert nicht richtig AWT, Swing, JavaFX & SWT 3
1 Laden einer Datei zur Echtzeit Darstellen AWT, Swing, JavaFX & SWT 7
P Problem bei Datei zur Verwaltung von Tabs AWT, Swing, JavaFX & SWT 5
F png-Datei erstellen und einzelne Pixel schreiben AWT, Swing, JavaFX & SWT 2
A Ini Datei Auswerten - HILFE! AWT, Swing, JavaFX & SWT 6

Ähnliche Java Themen

Neue Themen


Oben