2009-05-27 9 views
9

Nachdem ich viel Zeit und Programmcode in Swing programmiert habe, dachte ich, dass dies kein State-of-the-Art-Java-GUI-Aufbau sein kann. Nachdem ich keine benutzerfreundliche visuelle GUI-Bilder für Eclipse gefunden hatte, stolperte ich über die deklarative GUI-Erstellung mit XML-UI-Toolkits ... und ich dachte: Das muss es sein! Ich denke, es ist der richtige Weg, einfach und auch nah an Web-Programmierung.Ist XML oder XUL die Zukunft der Java GUI?

Aber nachdem ich mich im Internet und auf SO umgesehen habe, habe ich den Eindruck, dass es nicht sehr häufig ist! Obwohl es viele Implementierungen und APIs gibt, scheint es so, als ob die meisten von ihnen tot sind und in den letzten 5 Jahren keine Updates hatten.

Also frage ich mich: Ist mein Gefühl richtig, dass XML für Java nicht sehr verbreitet ist? GUIs? Und wenn ja - aus welchen Gründen? Vielleicht könnte es nicht akzeptiert werden oder es hat einige gravierende Nachteile oder Leute machen alles im Web anstatt mit fatclients oder es gibt bessere Alternativen, vielleicht javafx?

Ich muss nur wissen, ob es sich lohnt, Zeit in diesem Bereich zu verbringen oder besser nach alternativen Wegen zu suchen. Da ich keine Entwicklermagazine lese, weiß ich nicht, was die Trends im Gui-Building sind und welche Technologien eine Zukunft haben sollen. Aber ich kann mir nicht vorstellen, dass die Leute immer noch so viel Zeit damit verbringen, böse Swing (oder Swt) -Apps zu schreiben.

+0

Sie sollten NetBeans für die GUI-Erstellung verwenden. Es hat immer sehr gut für mich funktioniert, sogar der Wechsel zwischen IDEs ist nicht so schlimm. – willcodejavaforfood

Antwort

3

Die Antwort der Sonne scheint JavaFX zu sein.

Es hat eine deklarative Sprache für die Angabe der GUI und es wird auch Builder-Apps geben.

+1

JavaFX ist eine imperative Standardimperativsprache, keine eigentlich deklarative Sprache. Was es hat, ist eine syntaktische Unterstützung für das Setzen einer Ladung von Eigenschaften zur Initialisierungszeit (plus Bindungen). –

+0

Ich habe gerade einen tieferen Einblick in JavaFX genommen und es gibt einen guten Eindruck. grundlegende Steuerelemente werden mit viel weniger Code implementiert. bindungen sind praktisch und zusammen mit css-styling und charts und den kommenden authoring tools ist das etwas, auf das ich auf jeden fall mehr zeit verwenden werde! –

+0

Ich untersuchte JavaFX 2.0 und war ziemlich zufrieden mit dem Produkt, bis ich sah, dass sie nur Windows unterstützen. http://javafx.com/faq/#5 –

0

Die Antwort wird sicherlich nicht XML sein. Welches Problem versuchen Sie zu lösen? Sie möchten wiederverwendbare Bausteine ​​und eine kompakte Möglichkeit, sie zu beschreiben. Ich sehe XML nicht dabei.

[bearbeiten] Erstellen eines Java-Code-Äquivalent von XUL wäre eine immense Verbesserung gegenüber XUL. XML macht es wirklich, wirklich schwer, eine gute Trennung von Bedenken und einmal und nur einmal zu tun. Es ist jedoch perfekt für die mongolische Horde Ansatz. Sie benötigen eine Ebene über dem Schwung, es stellt nur die Bausteine ​​zur Verfügung.

+0

es ist nur, dass ich Swing-Codierung ist böse denken. Ich mag den strukturierten, hierarchischen Aufbau von XML-Dokumenten und die klare Trennung von Funktionalität, Struktur und Design. persönlich denke ich, es ist besser zu lesen. und nach dem, was ich über Xul gesehen habe, brauchte es viel weniger Code als Swing. –

0

Ich würde zweiten Thilos Vorschlag mit javaFX. Außerdem deutet der Trend auf Webapps hin, also denke ich, dass javaFX und webbasierte UIs auf lange Sicht Swing + swt GUIs einholen werden.

1

Vor fünf bis zehn Jahren war XML sehr beliebt. Es ist zwar in Ordnung, eine Art von Standardisierung für die Übertragung von Daten zwischen heterogenen Systemen zu bieten, es ist jedoch nicht zum Programmieren geeignet. Es beginnt immer mit den einfachen Dingen und lässt alles erklären. Aber jedes reale System benötigt Code. XML fällt dann herunter. Es gibt auch das Problem, dass XML eine schlechte Syntax für Menschen ist und sogar Sprachen wie Java einfacher zu lesen sind.

Auf der anderen Seite gibt es eindeutig einen Bedarf für die Schienen von GUIs. Nackte Objekte ist der nächste vernünftige Versuch, den ich gesehen habe.

+3

Sie sollten mehr über XUL erfahren. Es wird nie allein benutzt, offensichtlich; Es ist mit JavaScript geschrieben (oder, im Fall von Miro, Python). Versuch es. Es ist wirklich super. – niXar

3

Es gibt einige Prototypenarbeiten für e4 (Eclipse 4), die das Erstellen einer GUI durch Bearbeiten eines Ecore-Modells und Anpassen über CSS ermöglichen würden.
Weitere Informationen und Anweisungen zum Testen finden Sie unter this blog post.

1

Ich kam zu denselben Schlussfolgerungen wie Sie über die deklarativen Frameworks da draußen. Es lohnt sich nicht, eine neue GUI-Syntax zu erlernen, es sei denn, sie wird weitgehend unterstützt. XUL als Interface-Sprache ist weit verbreitet, aber es gibt kein Java-Rendering-Framework dafür.Ich würde sagen HTML + CSS + Javascript und ein Servlet-Container ist heute die beste Java-Plattform für GUIs, aber leider habe ich keine plattformunabhängige Möglichkeit gefunden, Webseiten wie eine Desktop-Anwendung anzuzeigen.

0

Ich mache alle meine Swing-Sachen von Hand und keine meiner Anwendung ist böse. Wenn Sie nicht wissen, wie Sie eine brauchbare und gut aussehende Benutzeroberfläche erstellen können, gibt es keine Technologie, die Ihnen helfen könnte.

+1

cool es! vielleicht habe ich mich nicht sehr gut ausgedrückt. Meine Apps sind überhaupt nicht böse (sie sind die schönsten ...), aber der Prozess, eine komplexe GUI mit Swing zu bauen, ist eindeutig böse, zumindest für mich :) –

1

Wenn Sie Eclipse verwenden, können Sie jetzt WindowBuilder verwenden, um Sie beim Erstellen von Swing-Anwendungen in einem benutzerfreundlichen visuellen GUI Builder zu helfen. Es ist jetzt als kostenloser Download verfügbar und Google hat das Swing GUI Builder-Framework an die Eclipse Foundation gespendet.