Swing XML - JAVA (GUI) Problem !! BITTE HELFEN !!

cguido

Mitglied
Hallo Leute,

Ich muss die Zusatzaktivitäten meiner Uni in Informatik machen bzw in Java und habe ein paar Probleme.

Ich bin nicht so ein experte in Java bzw in XML .. Meine Aufgabe ist es jedoch verschiedene GUI Komponenten wie .. JButton, JLabel, JTextfield....zu implementieren (getrennt)

Später muss ich alles über XML Verknüpfen und in einem API Main Programm wieder getrennt aufrufen damit es ein Universelles Programm ist dass wenn später andere an diesem Programm weitermachen einfach ihre Klassen einbinden können...

Ich habe die Gui Komponenten schon implementiert und die XML bzw. DTD geschrieben ...
Wie kann ich am Besten in dem Main GUI-API Programm aus der XML datei die .java und .class datei auslesen damit ich den Quellcode Rausbekomme bzw. damit ich die Grafischen Elemente aufrufen kann in dem Main Programm..

Ich bräuchte Tipps für Methoden, Parser und andere Vorschläge damit ich mein Programm schreiben kann....

Mfg Christian Guido
 

dzim

Top Contributor
Sprich: Du willst eine Plattform bauen? Verstehe ich dein wirres und leicht panisches Schreiben hier richtig?

Was macht das XML eigentlich? Beschreibt es GUI-Plugins? Enthält es diese? Gibt es so etwas wie eine Main-GUI? Fragen über Fragen...
 

cguido

Mitglied
Also der Dozent kann nicht alle GUI Komponenten erklären ausimplementieren und vorzeigen und dazu soll dieses Projekt dienen. Ich soll Die Gui Komponenten separat Implementieren (z.B. JButton.class , JButton.src ) ...

Anschließend soll ich eine Geeignete Speicherung finden (XML, Kommaseparierte Liste o.Ä.)
Ich habe mich für XML Entschieden da es darüber viel Material gibt im Internet und in Büchern.

Die Aufgabe von XML soll sein alle GUI Komponenten die schon geschrieben wurden (JButton, JLabel.usw...) miteinander Zu Verknüpfen ...

Später soll ich über mein Main Programm in einer Liste(links) alle Komponenten aufzählen bzw ausgeben... rechts den Quellcode bzw. wie es grafisch aussieht und unten den Link zur API....

Also muss ich aus der XML die Datei Rausholen bzw den mit ihr Verbundenen Quellcode und diesen dann Kopieren. Dann muss ich im Main Programm für das Grafische Darstellen eine Allgemeine Methode Schreiben damit alles angezeigt wird egal was übergeben wird...

z.B ein JButton wird übergeben dieser erbt von JComponent , dann muss ich anschließend im Programm z.b new JComponent .... machen und dann den Quellcode umsetzen Lassen den ich raushole aus der gespeicherten datei....

Ich bin einfach verwirrt wie ich zum Beispiel Klassen einbinden kann über eine allgemeine Speichermethode, dass wenn jemand anders weitermachen will , egal wie er Implementiert seine Klassen einfach abspeichert werden und einfach eingebunden werden .....

Deswegen eine Allgemeine Oberfläche ...
Entschuldigt die Verwirrung .. bin etwas verwirrt weil ich lese lese und zu nix komme ...
 
Zuletzt bearbeitet:

dzim

Top Contributor
Wenn ich es also richtig verstanden habe und du im XML deine Oberfläche nur beschreiben möchtest, dann lies jetzt weiter, wenn nicht, dann muss ich sagen: Ich steh auf dem Schlauch.

Sprich: Du willst deklarativ deine Oberfläche beschreiben (und das schon tausend mal neu erfundene Rad wieder neu erfinden - nichts für ungut, dafür kannst du ja nichts).

Um dir einen Eindruck zu verschaffen, wie so etwas mit XML gemacht werden kann, empfehle ich dir das Studium bereits vohandener deklarativer UI-Ansätze auf XML-Basis.
Da wäre die in Android verwendeten Layout-XMLs, glade für GNOME, XWT für für SWT, FXML für JavaFX - hab ich was vergessen? Wie wäre es mit HTML?

Dein Ansatz sollte in etwa folgender Sein: Das Wurzelelement des XML sollte ein Layout beschreiben - also einen obersten Container. Dieser kann eine Liste von Kind-Elementen haben - wieder Layouts oder eben Widgets wie Buttons oder Labels oder irgend etwas anderes.
Willst du im XML .class-Files abspeichern? Das wäre eher... Ach sagen wir es wie es ist: Doof! :)

So oder so: Auch mit deinem Nachtrag bin ich mir noch immer nich 100%ig sicher, dass ich verstehe, was du eigentlich machen willst. Wenn es Fall 1 war, dann frage ich mich aber, warum dir dein Prof. eine Aufgabe gibt, die bestenfalls undankbar ist und die wahrscheinlich nie zu einem Abschluss kommen wird... Das wäre schlicht eine "Beschäftigungstherapie"...
 

cguido

Mitglied
Also ich Probiers nochmal ganz genau zu erklären...

Mein Professor würde am Ende Dieses Programm Weiter ausbauen lassen in Praktikas oder weitere Zusatzaktivitäten bzw. er kann ja selber aussuchen was er für wichtig hält was darin gespeichert werden soll, in dem Fall welche GUI- Komponenten....

Sein Wunsch war es dass Ich ein Programm schreibe (Grafisch) , dass auf der linken seite eine Liste der verschiedenen GUI Komponenten enthält und rechts wie es aussieht und den dafür geschriebenen Quellcode...

So... Er Meinte es wäre besser wenn man eine allgemeine Abspeicherung der einzelnen Komponenten macht in z.B. XML o.Ä. damit wenn später jemand anders weitermacht einfach weitermachen kann ohne dass er sich an zum Beispiel Deklarationen Variablen halten muss..

Im Prinzip hatte ich mir das so vorgestellt

Ich habe 2 Gui Komponenten geschrieben bzw. vorbereitet....In einem Ordner z.B.

GUI-Komp(Ist der Ordner, und darin sind die Komponenten Gespeichert)-> ...src\JButton.java usw...

Dann wollte ich eine XML datei Schreiben die alle Komponenten Aufzählt z.B. so

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Java_Objekte SYSTEM "DTD.dtd" >
<Java_Objekte>
<API type="JButton">
<java_datei quelle="C:\Users\Christian\Documents\eclipse\workspace neu\GuiKomp\src\GUI\...\Button.java"/>
<class_datei quelle="C:\Users\Christian\Documents\eclipse\workspace neu\GuiKomp\bin\GUI\...\Button.class"/>
<link_extern> Java Platform SE 7 </link_extern>
</API>
</Java_Objekte>

Anschließend will ich in Meinem Main Programm das Grafische implementieren d.h Die Listen die Panels usw dass alles aufgeteilt ist und alles sitzt...

Dann Das wichtigste die Verknüpfung...D.h. Wie kann ich aus den Abgespeicherten Klassen die in meiner XML verknüpft sind in meinem Main Programm die Einzelnen Klassen aufzählen bzw diese Anzeigen lassen...


Nachdem ich mir soviele gedanken gemacht habe zweifle ich immernoch die Abspeicherung in XML... was meinst du ?
 

dzim

Top Contributor
Ah. Jetzt wird mir einiges klarer! Du willst/sollst quasi so etwas wie die Applikation "Ensemble" (gehärt glaub ich zu den JavaFX-Sample-Applikationen) schreiben. Also nur für mich noch mal: Links in der Navigation (a.k.a. "Master"-Block) wählst du Klasse XYZ aus und dann erscheint rechts in einem Feld mit mehreren Tabs der Quellcode ("Details"-Block). Ok.

Sollen darin nur Swing-Klassen eingebettet werden oder "beliebiger" Quellcode? Wozu möchtest du due genau die .class-Datei verwenden? soll der zuvor kompilierte Code auch ausgeführt werden können, oder was? Wenn ja: Wird von deiner Anwendung erwartet, dass sie auch komplexen Code ausführen sollen kann? Wenn wieder ja, ist das eher ungünstig, weil der Code und damit die .class-Datei ja von Bibliotheken abhängen kann, die *nicht* Teil von Java sind - zum Beispiel Treiber für die Anbindung an Datenbanken oder so. Das würde ich dann mal noch klären.

Zu deinem Problem: Ich würde einen Ansatz fahren, der die Code-Teile in Zip-Dateien kapselt. Vergleichbar wie es Java mit .jar-Dateien macht. Dort gibt es im Zip-File einen Ordner ("META-INF") der enthält ein sogenanntes Manifest (welche immer "manifest.mf" heisst - Gross und Kleinschreibung kann man ignorieren). Duj könntest auch einfach auf das "meta-inf" verzichten und legst deine XML-Datei dort hin. Statt der entwas unglücklichen Referenz im XML irgendwo ins System, was mit absoluten Pfaden eher ungünstig ist, wenn man das Programm auf einen anderen Rechner bringt, steht dort der Pfad *innerhalb* des Zip-Files drin.
Andere Prominente Beispiele zum ankucken wären das OpenDocument-Format von Open-/LibreOffice und OpenXML (oder so ähnlich) - das Format der Dokument-Dateien von M$-Office - alles nicht weiter als umbenannte Zip-Dateien mit einem grossen Batzen an XML und anderen Dateien innen drin.

Beispiel:

Die Datei JButton.zip
enthält
\
- manifest.xml
[XML]
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Java_Objekte SYSTEM "DTD.dtd" >
<Java_Objekte>
<API type="JButton">
<java_datei quelle="code/[package-strucktur/]Button.java"/>
<class_datei quelle="code/[package-strucktur/]Button.class"/>
<link_extern> Java Platform SE 7 </link_extern>
</API>
</Java_Objekte>

<!-- Tipp: Verwende in Klassen und XML keine deutschen Begriffe und verwende statt unterstrichen CamelCase - DasIstCamelCase ;-) - und wenn du in XML Trennstriche brauchst, verwende ein Minus, aber das ist nur mein persänlicher Geschmack -->

<!-- überlege, ob du die packetstruktur wirklich brauchst -->
[/XML]
- Ordner innerhalb der Zip-Datei: code
\
- Button.java
- Button.class

Verstehst du, was ich meine?

Ich empfehle dir, damit du die Dateien einfacher erkennst, ob sie zu deinem Programm oder nicht gehören, einen eigenen Dateinamen zu verwenden - so etwas wie "zef" Zipped Ensamble File - das wäre so mein erster geistiger Erguss... :p

#edit: Während ich schrieb, fiel mir etwas ein. Wenn du den Code ausführen sollen könnst, würde ich dir vielleicht einen leicht veränderten Ansatz anraten:
Dein Manifest enthält dann einen zur Class-Datei alternativen Eintrag:
<jarFile src="jar/Button.jar"/>
Also enthält dein Zip-File das vollständige ausführbare(!) Jar-File - also vollständig mit Manifest und einer Klasse mit main-Methode.
Deine Oberfläche könnte einen Knopf enthalten, der den start einer solchen Datei ermöglicht. Dazu würde ich - um es nicht zu kompliziert werden zu lassen einen Runtime.exec("java -jar /pfad/zum/temporär/entpackten/jarFile.jar")-Aufruf machen und es als separates Programm öffnen lassen - in dem Fall wärst du maximal flexibel. Wenn es eine class-Datei enthält, kannst du sie ja (wenn das der Plan war) in dein Programm einbetten. So können auch etwas komplexere Beispiele eingebunden werden. Da Eclipse den Export von ausführbaren Jars recht komfortabel macht, denke ich, ist es eine Überlegung wert, oder?
 

cguido

Mitglied
Ich bedanke mich für die Antwort ich muss leider arbeiten gehen werde alles später oder morgen ganz genau durcharbeiten deine Ideen :) ..

Das mit der ZIP Datei klingt eigentlich sehr gut weil das stimmt die PFade müssen sonst immer verändert werden also muss ich das so machen...

Deine Idee war schon richtig links im Main Programm soll alles aufgelistet werden , rechts soll die Komponente Erscheinen und darunter der dafür verwendete Quellcode ausgegeben... und ganz unten noch den Link zur API...

Ich würde mich sehr freuen wenn du mir weiterhin eine Begleitung wärst für dieses Projekt da mein Wissen in Java nicht mit deinem Vergleichbar ist bzw. ich komme nicht alleine auf solche Ideen...

Eine genaue Antwort folgt :) schönen Sonntag noch
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
sserio Java Fx - Problem AWT, Swing, JavaFX & SWT 3
AmsananKING Java Menü-Problem AWT, Swing, JavaFX & SWT 1
B [Problem] Java öffnet Word-Datein nicht AWT, Swing, JavaFX & SWT 14
S AWT Java print dialog Problem AWT, Swing, JavaFX & SWT 0
T Java Combobox Problem AWT, Swing, JavaFX & SWT 3
L Snake in Java KeyListener Problem AWT, Swing, JavaFX & SWT 30
1 Java.awt.Robot Problem beim Shift-Druck AWT, Swing, JavaFX & SWT 5
2 Tablet-PC Java-Anwendung -> Tablet-Pen Problem !! AWT, Swing, JavaFX & SWT 3
B Swing Problem bei Java-Schachprogramm AWT, Swing, JavaFX & SWT 7
P Bug in Java? - Problem beim Ändern von Spaltentiteln AWT, Swing, JavaFX & SWT 2
O Problem mit der MacOS Version von Java AWT, Swing, JavaFX & SWT 2
J java menu+button problem AWT, Swing, JavaFX & SWT 6
TRunKX Problem mit der JAVA VM 1.3 1.4 AWT, Swing, JavaFX & SWT 5
L Problem mit paintComponent() under java < 1.6 under Windo AWT, Swing, JavaFX & SWT 3
O Java-GUI (AWT) Problem. AWT, Swing, JavaFX & SWT 14
V Bild wird nicht auf JPanel gezeichnet; Java Problem AWT, Swing, JavaFX & SWT 10
S java.awt.Frame, Problem mit Tabbing AWT, Swing, JavaFX & SWT 2
C Java Utils Deutungs Problem AWT, Swing, JavaFX & SWT 5
Z Bei Problem mit Java Swing brauche dringende Hilfe AWT, Swing, JavaFX & SWT 3
Juelin Für Java-Spezialisten AWT, Swing, JavaFX & SWT 4
Juelin Java <-> Delphi AWT, Swing, JavaFX & SWT 3
H Exceptions seit java: 1.6.0_65 Umstellung AWT, Swing, JavaFX & SWT 3
H Exception: java.lang.ClassCastException AWT, Swing, JavaFX & SWT 2
M JavaFX java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found AWT, Swing, JavaFX & SWT 5
J Java GUI Dropdown-Menü anzeigen AWT, Swing, JavaFX & SWT 5
M Eigene Java Klasse für allgemeine Grafikelemente AWT, Swing, JavaFX & SWT 8
thor_norsk Java - Allgemeine - Frage AWT, Swing, JavaFX & SWT 14
W Kennt jemand Dear ImGui (und den Java-Wrapper dazu)? AWT, Swing, JavaFX & SWT 0
B Java Projekt mit JavaFX und jfoenix ausführbar machen AWT, Swing, JavaFX & SWT 46
D JAVA Schieberegler AWT, Swing, JavaFX & SWT 6
N JavaFX Einfacher Taschenrechner mit Scene Builder und Java FX AWT, Swing, JavaFX & SWT 0
Jose05 Aus einer normalen Java Klasse eine FXML-Klasse laden AWT, Swing, JavaFX & SWT 12
S Welches Java Layout sollte ich verwenden? AWT, Swing, JavaFX & SWT 3
B Actionlistener mit Java Swing AWT, Swing, JavaFX & SWT 2
P Fehlermeldung: Error: Could not find or load main class set Caused by: java.lang.ClassNotFoundException: set AWT, Swing, JavaFX & SWT 5
Encera Java FX im Eclipse-Marketplace nichtmehr auffindbar AWT, Swing, JavaFX & SWT 6
_user_q Versionscode aus build.gradle in Java-Klasse ausgeben lassen AWT, Swing, JavaFX & SWT 14
M Java Dateien kopieren mit Fortschrittsbalken AWT, Swing, JavaFX & SWT 13
M Frage zu Java Bundesligaverwaltung AWT, Swing, JavaFX & SWT 7
_user_q Gibt es eine Möglichkeit, in Java alle möglichen Zeichen automatisch tippen zu lassen? AWT, Swing, JavaFX & SWT 13
E 3D-Grafik Java Fatal error bei LWJGL AWT, Swing, JavaFX & SWT 2
Heldderschatten Java Events und Interfaces AWT, Swing, JavaFX & SWT 18
volcanos Scrollen: JScrollPane mit Graphics g und Java-Fonts extends Frame ? AWT, Swing, JavaFX & SWT 5
U Warum wird zweimal die Affinetransformation estellt (2Dgraphics, Java)? AWT, Swing, JavaFX & SWT 31
U was bewirkt die methode fill und unterschied zu anderen fill Methoden in 2dgraphics? (Java)? AWT, Swing, JavaFX & SWT 6
DonBronson Java Graphics bewegbar machen (Drag&Drop) AWT, Swing, JavaFX & SWT 3
Yonnig Lokale HTML-Datei in Java GUI rendern AWT, Swing, JavaFX & SWT 4
E Java-TexturePaint sehr langsam AWT, Swing, JavaFX & SWT 9
N Java MySQL Datenbank durchsuchen? AWT, Swing, JavaFX & SWT 7
maximstein JavaFX WebView - java.lang.NoSuchMethodError: 'boolean com.sun.prism.ResourceFactory.isDisposed()' AWT, Swing, JavaFX & SWT 4
Splayfer Custom Font in AttributedString Java AWT, Swing, JavaFX & SWT 4
imawake Java Paket-Tracking Programm 📦 AWT, Swing, JavaFX & SWT 7
izoards *.doc Seitenränder per Java setzen... AWT, Swing, JavaFX & SWT 14
T FXML Datei in Java Code einbinden: javafx.fxml.LoadException AWT, Swing, JavaFX & SWT 2
J Key-Listener in Java AWT, Swing, JavaFX & SWT 37
J Java Datei durch CMD mit Parameter ausführen AWT, Swing, JavaFX & SWT 1
N Java Mouse Listiner macht alles zusammen AWT, Swing, JavaFX & SWT 4
J Java FX NullPointerException, ObservableList wird in View nicht angezeigt.. AWT, Swing, JavaFX & SWT 34
T Exception in thread "main" java.lang.NoClassDefFoundError AWT, Swing, JavaFX & SWT 4
M Error occurred during initialization of boot layer java.lang.module.FindException: Module javafx.controls not found AWT, Swing, JavaFX & SWT 14
T Swing DPI-Skalierung und Java 2D unter Java 11 (und Windows 10) AWT, Swing, JavaFX & SWT 2
J Spiel mit Java AWT, Swing, JavaFX & SWT 9
I AWT java.awt.FileDialog - "coffee cup"-Icon lässt sich nicht ersetzen AWT, Swing, JavaFX & SWT 14
O Ein Java-Programm mit Swing steuern AWT, Swing, JavaFX & SWT 1
izoards Java FX Window Event SHOWING AWT, Swing, JavaFX & SWT 17
N FXMLLoader.load java.lang.RuntimeException: Gradle AWT, Swing, JavaFX & SWT 2
T Java GUI - Würfel Programm AWT, Swing, JavaFX & SWT 6
JojoSand Java Programm wird nicht gestartet - keinen Fehlerhinweis AWT, Swing, JavaFX & SWT 9
dtr84 JavaFX/OpenJFX mittels Apache Ivy einbinden (Java 11) AWT, Swing, JavaFX & SWT 18
M Jogl und Java 3d AWT, Swing, JavaFX & SWT 0
S0PEX JavaFX Java 8 auf 15 migrieren OpenJFX mit Gradle eingebunden, jedoch nicht gefunden !? AWT, Swing, JavaFX & SWT 4
I Gui in bestehendes Java-Programm AWT, Swing, JavaFX & SWT 11
V Java-Zeichenfeld mit AWT AWT, Swing, JavaFX & SWT 3
N java Gui friert scheinbar zufällig ein AWT, Swing, JavaFX & SWT 5
T Anderen Java Code durch Code kompilieren und Fehler in Label ausgeben AWT, Swing, JavaFX & SWT 5
P Java Fx einrichten AWT, Swing, JavaFX & SWT 2
pkm Frage wegen java.lang.IllegalStateException bei DocumentListener AWT, Swing, JavaFX & SWT 4
S JavaFX Java Custom Node Grafik zurückgeben AWT, Swing, JavaFX & SWT 2
MiMa Java und JavaFX 13 läuft endlich AWT, Swing, JavaFX & SWT 4
N eclipse Java, bilder benutzten Funktioniert nicht AWT, Swing, JavaFX & SWT 6
Trèfle Ausklappbare Diagramme in Java AWT, Swing, JavaFX & SWT 1
R Java, GUI, Hintergrundbild, Image, AWT, Swing, JavaFX & SWT 4
K JAVA FX Constraints AWT, Swing, JavaFX & SWT 2
F Java FX und webcam AWT, Swing, JavaFX & SWT 1
T Wie kann man in java aufwendige grafiken programmieren AWT, Swing, JavaFX & SWT 1
M Swing Java Swing/AWT Combobox Bug AWT, Swing, JavaFX & SWT 3
S Java GUI durch variable Größe einer Map anpassen AWT, Swing, JavaFX & SWT 3
J Java SWT Tabelleninhalt formattieren AWT, Swing, JavaFX & SWT 10
Blender3D Falsche Werte mit Java Toolkit Screensize AWT, Swing, JavaFX & SWT 4
K Swing AWT-EventQueue-1 java.lang.NoClassDefFoundError bei setVisible(true) AWT, Swing, JavaFX & SWT 3
A Java Programm gestalten AWT, Swing, JavaFX & SWT 4
S Swing Java Swing AWT, Swing, JavaFX & SWT 6
I Java Bildfarbe ändern wie bei Photoshop AWT, Swing, JavaFX & SWT 9
R JavaFX Java FXML Vererbung in Klassen AWT, Swing, JavaFX & SWT 9
T Java: Zwei abhängige JSlider machen nicht das, was sie sollen AWT, Swing, JavaFX & SWT 4
J Parallele Aktionen in Java FX richtig durchführen. AWT, Swing, JavaFX & SWT 5
Neumi5694 java.awt.Window nach javafx.stage.Window AWT, Swing, JavaFX & SWT 1
M JavaFX java.lang.IllegalStateException: Location is not set. AWT, Swing, JavaFX & SWT 9
L Java- CardLayout AWT, Swing, JavaFX & SWT 10
M Java zeichnet nicht pixelgenau AWT, Swing, JavaFX & SWT 40

Ähnliche Java Themen

Neue Themen


Oben