Schwingen (Java)

Schwingen ist das primäre Java GUI Produkt-Werkzeug. Es ist ein Teil von Java Foundation Classes (JFC) des Orakels - eine API, für eine grafische Benutzerschnittstelle (GUI) für javanische Programme zur Verfügung zu stellen.

Schwingen wurde entwickelt, um einen hoch entwickelteren Satz von GUI Bestandteilen zur Verfügung zu stellen, als früheres Abstract Window Toolkit (AWT). Schwingen stellt einen heimischen Blick zur Verfügung, und finden Sie, dass das mit dem Blick und Gefühl von mehreren Plattformen wetteifert, und auch einen Pluggable-Blick unterstützt und finden Sie, dass das Anwendungen erlaubt, einen Blick zu werfen und sich ohne Beziehung zur zu Grunde liegenden Plattform zu fühlen. Es hat stärkere und flexible Bestandteile als AWT. Zusätzlich zu vertrauten Bestandteilen wie Knöpfe, Ankreuzfeld und Etiketten, stellt Schwingen mehrere fortgeschrittene Bestandteile wie Tabbed-Tafel, Schriftrolle-Fensterscheiben, Bäume, Tische und Listen zur Verfügung.

Verschieden von AWT Bestandteilen werden Schwingen-Bestandteile durch den mit der Plattform spezifischen Code nicht durchgeführt. Stattdessen werden sie völlig in Java geschrieben und sind deshalb mit der Plattform unabhängig. Der Begriff "Leichtgewichtler" wird gebraucht, um solch ein Element zu beschreiben.

Geschichte

Internet Foundation Classes (IFC) waren eine Grafikbibliothek für Java, das ursprünglich von Netscape Communications Corporation entwickelt ist, und haben zuerst am 16. Dezember 1996 veröffentlicht. Am 2. April 1997 hat Sun Microsystems and Netscape Communications Corporation ihre Absicht bekannt gegeben, IFC mit anderen Technologien zu vereinigen, um die javanischen Fundament-Klassen zu bilden. Die "javanischen Fundament-Klassen" wurden später "Schwingen" umbenannt.

Schwingen hat einen Mechanismus eingeführt, der dem Blick und Gefühl jedes Bestandteils in einer Anwendung erlaubt hat, verändert zu werden, ohne wesentliche Änderungen mit dem Anwendungscode vorzunehmen. Die Einführung der Unterstützung für einen Pluggable-Blick und Gefühl erlaubt Schwingen-Bestandteilen, mit dem Äußeren von heimischen Bestandteilen wettzueifern, während sie noch die Vorteile der Hardwarebasisunabhängigkeit behält.

Ursprünglich verteilt als eine getrennt herunterladbare Bibliothek ist Schwingen als ein Teil der javanischen Standardausgabe seit der Ausgabe 1.2 eingeschlossen worden. Die Schwingen-Klassen und Bestandteile werden in der Paket-Hierarchie enthalten.

Die Schwingen-Architektur

Schwingen ist ein mit der Plattform unabhängiger, Muster-Ansicht-Kontrolleur GUI Fachwerk für Java. Es folgt einem Einzeln-Gewindeprogrammiermodell.

Fundamente

Schwingen ist mit der Plattform unabhängig, weil es in Java völlig geschrieben wird. Die ganze Dokumentation für alle Schwingen-Klassen kann sein

gefunden im javanischen API-Führer.

Ausziehbar

Schwingen ist eine hoch modulare Architektur, die die "Verstopfung" von verschiedenen kundenspezifischen Durchführungen von angegebenen Fachwerk-Schnittstellen berücksichtigt: Benutzer können ihre eigene kundenspezifische Durchführung (En) dieser Bestandteile zur Verfügung stellen, um die Verzug-Durchführungen mit Javas Erbe-Mechanismus zu überreiten.

Schwingen ist ein teilbasiertes Fachwerk. Die Unterscheidung und Bestandteile sind ein ziemlich feiner Punkt: Kurz ist ein Schwingen-Bestandteil eine Nachkomme-Klasse der Klasse. Schwingen-Gegenstände zünden asynchron Ereignisse an, haben Eigenschaften "gebunden", und antworten auf einen dokumentierten Satz von zum Bestandteil spezifischen Methoden. Schwingen-Bestandteile sind javanische Bohnenbestandteile, die mit den javanischen Bohnenteilarchitektur-Spezifizierungen entgegenkommend sind.

Anpassbar

In Anbetracht des programmatic Übergabe des Modells des Schwingen-Fachwerks ist die feine Kontrolle über die Details der Übergabe eines Bestandteils im Schwingen möglich. Als ein allgemeines Muster ist die Sehdarstellung eines Schwingen-Bestandteils eine Zusammensetzung eines Standardsatzes von Elementen, wie eine "Grenze", "Beilage", Dekorationen und andere Eigenschaften. Gewöhnlich werden Benutzer einen Standardschwingen-Bestandteil (wie ein JTable) programmatisch kundengerecht anfertigen, indem sie spezifische Grenzen, Farben, Hintergründe, Undurchsichtigkeit usw. zu diesem Bestandteil zuteilen werden. Der Kernbestandteil wird dann diese Eigenschaften verwenden, sich zu machen. Jedoch ist es auch völlig möglich, einzigartige GUI-Steuerungen mit der hoch kundengerecht angefertigten Sehdarstellung zu schaffen.

Konfigurierbar

Das schwere Vertrauen des Schwingens auf Durchlaufzeit-Mechanismen und indirekten Zusammensetzungsmustern erlaubt ihm, in der Durchlaufzeit auf grundsätzliche Änderungen in seinen Einstellungen zu antworten. Zum Beispiel kann eine Schwingen-basierte Anwendung seinen Blick und Gefühl in der Durchlaufzeit ändern. Sich weiter können Benutzer ihren eigenen Blick zur Verfügung stellen und Durchführung fühlen, die gleichförmige Änderungen im Blick berücksichtigt und Gefühl von vorhandenen Schwingen-Anwendungen ohne jeden programmatic zum Anwendungscode ändern.

Leichter UI:

Schwingen Sie das hohe Niveau der Flexibilität ist ein Ergebnis einer Wahl, die Steuerungen von GUI des geborenen Gastgebers OS nicht zu verwenden, um sich zu zeigen. Schwingen "malt" seine Steuerungen mit Java 2. APIs, anstatt ein heimisches Benutzerschnittstelle-Werkzeug zu nennen. So hat ein Schwingen-Bestandteil keinen entsprechenden Bestandteil des Eingeborenen OS GUI und ist frei, sich in jedem Fall zu machen, der mit dem zu Grunde liegenden Grafik-GUI möglich ist.

Jedoch, an seinem Kern, verlässt sich jeder Schwingen-Bestandteil auf einen AWT Behälter, da (Schwingen) den Behälter (von AWT) erweitert. Das erlaubt Schwingen, ins GUI Verwaltungsfachwerk des Gastgebers OS, einschließlich des entscheidenden Geräts/Schirms mappings und der Benutzerwechselwirkungen, wie Schlüsselpressen oder Maus-Bewegungen einzustecken. Schwingen "stellt" einfach sein eigenes (OS Agnostiker) Semantik über das zu Grunde liegende (OS spezifisch) Bestandteile "um". Also, zum Beispiel malt jeder Schwingen-Bestandteil seine Interpretation auf dem grafischen Gerät als Antwort auf einen Anruf component.paint , der im (AWT) Behälter definiert wird. Aber verschieden von AWT Bestandteilen, die die Malerei an ihr OS-Eingeborener-"Schwergewichts"-Produkt delegiert haben, sind Schwingen-Bestandteile für ihre eigene Übergabe verantwortlich.

Diese Umstellung und Entkoppeln sind nicht bloß visuell, und strecken sich bis zu das Management des Schwingens und Anwendung seiner eigenen OS-independent Semantik für innerhalb seiner Teileindämmungshierarchien angezündete Ereignisse aus. Im Allgemeinen delegiert die Schwingen-Architektur die Aufgabe, die verschiedenen Geschmäcke nach der Semantik von OS GUI auf einen einfachen, aber verallgemeinert, Muster zum AWT Behälter kartografisch darzustellen. Aufbauend, der Plattform verallgemeinert hat, gründet sie seine eigenen Reichen und Komplex Semantik von GUI in der Form des Modells.

Lose verbunden und MVC

Die Schwingen-Bibliothek macht schweren Gebrauch des Softwaredesignmusters des Modells/Ansicht/Kontrolleurs, das begrifflich decouples die Daten, die von der Benutzerschnittstelle ansehen werden, kontrolliert, durch den es angesehen wird. Wegen dessen haben die meisten Schwingen-Bestandteile Modelle vereinigt (die in Bezug auf javanische Schnittstellen angegeben werden), und der Programmierer verschiedene Verzug-Durchführungen verwenden oder ihr eigenes zur Verfügung stellen kann. Das Fachwerk stellt Verzug-Durchführungen von Musterschnittstellen für alle seine konkreten Bestandteile zur Verfügung. Der typische Gebrauch des Schwingen-Fachwerks verlangt die Entwicklung von Sonderanfertigungen nicht, weil das Fachwerk eine Reihe von Verzug-Durchführungen zur Verfügung stellt, die durchsichtig standardmäßig mit der entsprechenden Kinderklasse in der Schwingen-Bibliothek vereinigt werden. Im Allgemeinen können nur komplizierte Bestandteile, wie Tische, Bäume und haben manchmal Schlagseite, die Sonderanfertigungsdurchführungen um die anwendungsspezifischen Datenstrukturen verlangen. Um einen gesunden Verstand des Potenzials zu bekommen, das die Schwingen-Architektur möglich macht, denken Sie die hypothetische Situation, wo Sonderanfertigungen für Tische und Listen Streifbänder über DAO und/oder EJB Dienstleistungen sind..

Gewöhnlich sind Schwingen-Teilmustergegenstände dafür verantwortlich, einem kurzen Schnittstelle-Definieren Ereignisse angezündete und zugängliche Eigenschaften für das (begriffliche) Datenmodell für den Gebrauch durch den verbundenen JComponent zur Verfügung zu stellen. Vorausgesetzt, dass das gesamte MVC Muster ein lose verbundenes zusammenarbeitendes Gegenstand-Beziehungsmuster ist, stellt das Modell die Programmatic-Mittel zur Verfügung, um Ereignis-Zuhörer dem Datenmustergegenstand beizufügen. Gewöhnlich sind diese Ereignisse zentrisches Modell (ab: Eine "Reihe hat" Ereignis in ein Tabellenmodell eingefügt), und werden durch die JComponent Spezialisierung in ein bedeutungsvolles Ereignis für den GUI Bestandteil kartografisch dargestellt.

Zum Beispiel hat das Haben eines Modells gerufen, der eine Schnittstelle dafür beschreibt, wie ein Tisch auf tabellarische Daten zugreifen würde. Eine Verzug-Durchführung davon funktioniert auf einer zweidimensionalen Reihe.

Der Ansicht-Bestandteil eines Schwingens JComponent ist der Gegenstand, der verwendet ist, um die Begriffs-GUI-Kontrolle grafisch "zu vertreten". Eine Unterscheidung des Schwingens, als ein GUI Fachwerk, ist in seinem Vertrauen auf programmatisch gemachten GUI-Steuerungen (im Vergleich mit dem Gebrauch der GUI-Steuerungen des geborenen Gastgebers OS). Vor Java 6 Aktualisierung 10 war diese Unterscheidung eine Quelle von Komplikationen, als sie AWT Steuerungen gemischt hat, die heimische Steuerungen mit Schwingen-Steuerungen in einem GUI verwenden (sieh das Mischen AWT und Schwingen-Bestandteile).

Schließlich, in Bezug auf die Sehzusammensetzung und das Management, bevorzugt Schwingen Verhältnislay-Outs (die angeben, dass die Stellungsbeziehungen zwischen Bestandteilen) im Vergleich mit absoluten Lay-Outs (die die genaue Position und Größe von Bestandteilen angeben). Diese Neigung zur "flüssigen"' Seheinrichtung ist wegen seiner Ursprünge im applet Betriebsumgebung, die das Design und die Entwicklung des ursprünglichen Javas GUI Werkzeug eingerahmt hat. (Begrifflich ist diese Ansicht vom Lay-Out-Management dem ziemlich ähnlich, das die Übergabe des HTML-Inhalts in Browsern informiert, und denselben Satz von Sorgen richtet, die den ersteren motiviert haben.)

Beziehung zu AWT

Seit frühen Versionen Javas hat ein Teil von Abstract Window Toolkit (AWT) mit der Plattform unabhängigen APIs für Benutzerschnittstelle-Bestandteile zur Verfügung gestellt. In AWT wird jeder Bestandteil gemacht und von einem heimischen gleichrangigen zum zu Grunde liegenden Fenstertechnik-System spezifischen Bestandteil kontrolliert.

Im Vergleich werden Schwingen-Bestandteile häufig als Leichtgewichtler beschrieben, weil sie Zuteilung von heimischen Mitteln im Fenstertechnik-Werkzeug des Betriebssystems nicht verlangen. Die AWT Bestandteile werden Schwergewichtsbestandteile genannt.

Viel von der Schwingen-API ist allgemein eine Ergänzungserweiterung des AWT aber nicht eines direkten Ersatzes. Tatsächlich besteht jede Schwingen-Leichtgewichtsschnittstelle schließlich innerhalb eines AWT Schwergewichtsbestandteils, weil alle Bestandteile auf höchster Ebene im Schwingen (und) einen AWT Behälter auf höchster Ebene erweitern. Vor Java 6 Aktualisierung 10 wurde der Gebrauch sowohl von Leichtgewichts-als auch von Schwergewichtsbestandteilen innerhalb desselben Fensters allgemein wegen Z-Ordnungsinkompatibilitäten entmutigt. Jedoch haben spätere Versionen Javas diese Probleme befestigt, und beides Schwingen und AWT Bestandteile können jetzt in einem GUI ohne Z-Ordnungsprobleme verwendet werden.

Die durch das Schwingen verwendete Kernübergabe-Funktionalität, um seine Leichtgewichtsbestandteile zu ziehen, wird durch Java 2., ein anderer Teil von JFC zur Verfügung gestellt.

Beziehung zu SWT

Standard Widget Toolkit (SWT) ist ein konkurrierendes Werkzeug, das ursprünglich von IBM entwickelt ist und jetzt von der Eklipse-Gemeinschaft aufrechterhalten ist. Die Durchführung von SWT hat mit den Schwergewichtsbestandteilen von AWT mehr gemeinsam. Das teilt Vorteile wie genauere Treue mit dem zu Grunde liegenden heimischen Fenstertechnik-Werkzeug auf Kosten einer vergrößerten Aussetzung von der heimischen Plattform im Programmiermodell zu.

Das Advent von SWT hat sehr viel Abteilung unter javanischen Tischentwicklern, mit vielen verursacht, stark entweder SWT oder Schwingen bevorzugend.

Es hat bedeutende Debatte und Spekulation über die Leistung von SWT gegen das Schwingen gegeben; einige haben angedeutet, dass die schwere Abhängigkeit von SWT von JNI es langsamer machen würde, wenn der GUI Bestandteil und Java Daten mitteilen müssen, aber schneller bei der Übergabe, als das Datenmodell in den GUI geladen worden ist, aber das ist kein Weg bestätigt worden. Ein ziemlich gründlicher Satz von Abrisspunkten 2005 hat beschlossen, dass weder Schwingen noch SWT klar anderen im allgemeinen Fall überboten haben.

Wie man

betrachtet, ist SWT von einigen als eine Technologie für die Quer-Plattform-Entwicklung weniger wirksam. Indem sie die Eigenschaften auf höchster Ebene jedes heimischen Fenstertechnik-Werkzeuges verwenden, behaupten sie, dass SWT zu den Mitte der 1990er Jahre gesehenen Problemen zurückkehrt (mit Werkzeugen wie zApp, Zink, XVT und IBM/Plausch), wo Werkzeuge versucht haben, Unterschiede im Fokus-Verhalten, Ereignis-Auslösen und grafischen Lay-Out zu maskieren. Misserfolg, Verhalten auf jeder Plattform zu vergleichen, kann feine, aber zur Entschlossenheit schwierige Programmfehler dass Einfluss-Benutzerwechselwirkung und das Äußere des GUI verursachen.

Beispiele

Ein grundlegendes Beispiel

Der folgende ist ein ziemlich einfaches Schwingen-basiertes Programm. Es zeigt ein Fenster (a), das ein Etikett und einen Knopf enthält.

Bemerken Sie, wie der ganze instantiation und das Berühren aller Schwingen-Bestandteile auf dem Ereignis-Absendungsfaden durch den Gebrauch der Methode getan werden) auf einem Beispiel der Klasse,

der Klasse von Runnable ist, die in der Hauptmethode geschaffen ist (sieh Schwingen und fädeln Sie Sicherheit ein).

Import javax.swing. JButton;

Import javax.swing. JFrame;

Import javax.swing. JLabel;

Import javax.swing. SwingUtilities;

öffentliche Klasse SwingExample führt Runnable {\durch

@Override

öffentliche Leere geführt {\

//Schaffen Sie das Fenster

JFrame f = neuer JFrame ("Hallo, Welt!");

//Setzt das Verhalten dafür, wenn das Fenster geschlossen wird

f.setDefaultCloseOperation (JFrame. EXIT_ON_CLOSE);

//fügen Sie ein Etikett und einen Knopf hinzu

f.getContentPane .add (neuer JLabel ("Hallo, Welt!"));

f.getContentPane .add (neuer JButton ("Drücken mich!"));

//ordnen Sie die Bestandteile innerhalb des Fensters ein

f.pack ;

//Standardmäßig ist das Fenster nicht sichtbar. Machen Sie es sichtbar.

(wahrer) f.setVisible;

}\

öffentliche statische leere Hauptsache (Schnur [] args) {\

SwingExample se = neuer SwingExample ;

//Plant die Anwendung, die in der richtigen Zeit mit der Ereignis-Warteschlange zu führen ist.

SwingUtilities.invokeLater (se);

}\}\</Quelle>

Siehe auch

  • Lay-Out-Betriebsleiter
  • SwingLabs - Erweiterungen, um Zu schwingen, der ins Schwingen in der Zukunft eingeschlossen werden könnte
  • Standardprodukt-Werkzeug - Ein Drittprodukt-Werkzeug durch das Eklipse-Fundament aufrechterhalten.

Referenzen

  • Matthew Robinson, Pavel Vorobiev: Schwingen, die Zweite Ausgabe, Bemannung, internationale Standardbuchnummer 1 930110 88 X
  • David M. Geary: Das Grafische Java 2, Band 2: Schwingen, Prentice Hall, internationale Standardbuchnummer 0-13-079667-0
  • John Zukowski: Das Endgültige Handbuch zum javanischen Schwingen, die Dritte Ausgabe, Apress, internationale Standardbuchnummer 1-59059-447-9
  • James Elliott, Robert Eckstein, Marc Loy, David Wood, Brian Cole: Javanisches Schwingen, O'Reilly, internationale Standardbuchnummer 0-596-00408-7
  • Kathy Walrath, Mary Campione, Alison Huml, Sharon Zakhour: Der JFC-Schwingen-Tutorenkurs: Ein Handbuch zum Konstruieren von GUIs, Addison-Wesley Professional, internationaler Standardbuchnummer 0-201-91467-0
  • Joshua Marinacci, Chris Adamson: Schwingen Sie Arbeiter, O'Reilly, internationale Standardbuchnummer 0-596-00907-0
  • Ivan Portyankin, Schwingen, Wirksame Benutzerschnittstellen (Russisch). 2. Ed, 2010, Moskau, "Lory", internationale Standardbuchnummer 5-469-00005-2

Links


Hammond, Montana / Clann na Poblachta
Impressum & Datenschutz