Zum Inhalt springen

Swing (Java)

aus Wikipedia, der freien Enzyklopädie
Datei:Gui-widgets.png
Die Widgets von Swing mit dem Ocean Look and Feel (Standard seit Java 1.5)
Datei:AWTSwingClassHierarchy.png
Klassenhierarchie von AWT und Swing

Swing ist ein GUI-Toolkit für die Programmiersprache Java von Sun Microsystems. Seit Java-Version 1.2 (1998) ist es Bestandteil der Java-Runtime. Swing gehört zu den Java Foundation Classes (JFC), die eine Sammlung von Bibliotheken zur Programmierung von grafischen Benutzerschnittstellen bereitstellen. Zu diesen Bibliotheken gehören Java 2D, die Java Accessibility API (JAAPI), das Drag-and-Drop-API und das Abstract Window Toolkit (AWT). Swing baut auf dem älteren AWT auf und ist mit den anderen APIs verwoben.

Hauptkonkurrent von Swing ist das für Eclipse entwickelte SWT. Der designierte Nachfolger von Swing ist das Framework JavaFX, das seit März 2014 im Lieferumfang des Oracle JDK enthalten ist, das aber bisher nicht durch den Java Community Process als offizieller Java-Standard spezifiziert wurde.

Merkmale

Aufbau

Swing ist modular und objektorientiert aufgebaut, so dass es sich gerade für die Entwicklung komplexer Anwendungen gut eignet. Durch die Plattformunabhängigkeit entfällt ebenfalls viel Entwicklungs- und Testarbeit.

Pluggable Look-and-Feel

Das Erscheinungsbild (Look, siehe Skin) und das Verhalten (Feel) von Swing-Komponenten kann mittels sogenannter Look-and-Feels angepasst werden. Auf allen Plattformen stehen sowohl das Motif-Look-and-Feel als auch das Metal-Look-and-Feel (ab Java 5 das Ocean-Look-and-Feel) zur Verfügung, auf Linux Gtk, Mac und Windows zusätzlich ein dem systemüblichen angepasstes eigenes Look and Feel. Es existieren eine Reihe unabhängig entwickelter Erscheinungsbilder, wovon die meisten auf Metal basieren. Seit Java 1.5 ist das Synth-Look-and-Feel hinzugekommen, dessen aus Bildern zusammengesetztes Erscheinungsbild in einer XML-Datei beschrieben wird, sodass kein Java-Code geschrieben werden muss. Mit Java 1.6, Update 10 wurde das vollständig vektorbasierte Nimbus-Look-and-Feel eingeführt.<ref>Swing Enhancements in the Java Standard Edition 6.0 und SE 6 Update 10 Release Notes bei Oracle</ref>

Leichtgewichtige Komponenten

Swing-Komponenten werden direkt von Java gerendert und sind nicht von nativen Betriebssystemkomponenten abhängig. Dadurch funktionieren alle Swing-Komponenten auf allen Plattformen gleich, unabhängig davon, ob die entsprechende Plattform eine Komponente zur Verfügung stellt oder nicht. Der Nachteil ist, dass eine Swing-Anwendung nicht wie eine für das Betriebssystem entwickelte Anwendung aussieht. Das kann aber durch eine Auswahl an entsprechenden Pluggable Look-and-Feels kompensiert werden. Diese Eigenschaft wird mit dem englischen Wort Lightweight UI beschrieben (lightweight = all-Java language).

Vergleich

Im Vergleich zu AWT hat man mit Swing folgende zusätzliche Komponenten, die zur Oberflächenerzeugung genutzt werden können:

Multithreading

Swing ist nicht thread-sicher, es kann also zu unerwarteten Wechselwirkungen zwischen verschiedenen Threads kommen, wenn nicht sorgfältig programmiert wird.<ref>{{#invoke:Vorlage:Literatur|f}}</ref> Stattdessen sind die Swing-Komponenten so implementiert, dass ihre Methoden stets in einem sogenannten Event Dispatch Thread des AWT ausgeführt werden müssen, der die gesamte Ereignisverarbeitung grafisch-interaktiver Java-Anwendungen durchführt.<ref>{{#invoke:Vorlage:Literatur|f}}</ref> Um dies zu vereinfachen, stellt die Hilfsklasse SwingUtilities zwei Methoden bereit, die aus anderen Threads heraus aufgerufen werden können und ein ausführbares Objekt vom Typ Runnable als Parameter nehmen.<ref>{{#invoke:Vorlage:Literatur|f}}</ref>

  • invokeLater reiht das ausführbare Objekt in die Ereigniswarteschlange von AWT ein und kehrt noch vor dessen Ausführung in den aufrufenden Code zurück. Der aufrufende Thread wird also nicht blockiert.
  • invokeAndWait reiht das ausführbare Objekt in die Ereigniswarteschlange von AWT ein und wartet, bis es abgearbeitet wurde. Der aufrufende Thread wird also blockiert.

Verstöße gegen diese Konventionen werden dem Programmierer nicht gemeldet, so dass damit verbundene Schwierigkeiten lange unentdeckt bleiben bzw. gar nicht behoben werden. UI-Frameworks wie SWT oder auch .NET WinForms handhaben dies anders und quittieren fehlerhafte Aufrufe sofort.

Außerhalb des JRE stellte Sun eine SwingWorker genannte Basisklasse zur Verfügung, die zwei zu überladende Methoden anbietet: Eine, die in einem eigenen Thread aufgerufen wird und eine längerdauernde Operation ausführen kann und eine weitere, die nach dem Ende dieser Operation im Event Dispatch Thread ausgeführt wird und Swing-Komponenten manipulieren darf. Des Weiteren existiert ein Mechanismus, der es erlaubt, Zwischenschritte (z. B. in einer Fortschritts-Anzeige) zu visualisieren. Seit Java 1.6 ist sie als javax.swing.SwingWorker im JRE enthalten.

Geschichte

Swing wurde erstmals mit dem JDK 1.1.5 Ende 1997 als externe Bibliothek ausgeliefert und ist seit JDK 1.2 („Java 2“) Ende 1998 fester Bestandteil der Java-Laufzeitumgebung. Swing hatte sehr bald den Ruf, eine schlechte Performance aufzuweisen und für „ernsthafte“ Anwendungen ungeeignet zu sein. Der Standard-Stil (Look&Feel) von Swing-Fenstern fand ebenfalls nicht besonders viele Freunde.

Sun legte daraufhin großes Augenmerk auf die Verbesserung des Aussehens der mitgelieferten Look and Feels, sowie der Performance von Swing. Mittlerweile hat sich die Performance durch verbesserte Hardwareunterstützung der Beschleunigungsfunktionen von Grafikkarten, sowie über Performance-Verbesserungen in den Klassenbibliotheken selbst und bei der Java Runtime deutlich verbessert. Spätestens seit Java Version 1.4 2002 weist Swing keine merkbaren Performanceunterschiede zu nativen GUIs auf. Auch Performancevergleiche zwischen Swing und SWT zeigen keine Performanceunterschiede auf.<ref>{{#if:Vorlage:Cite book/URL|{{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}| |}}}}{{#if:{{#if:

               |  
               | {{#if: Igor
                 | {{#if: 
                     |  [[|Vorlage:Cite book/Name]]
                     | Vorlage:Cite book/Name
                   }}
                 }}{{#if: 
                     | {{#if:  
                         | , [[|Vorlage:Cite book/Name]]
                         | Vorlage:Cite book/Name
                        }}
                 }}{{#if: 
                     | {{#if:  
                         | , [[|Vorlage:Cite book/Name]]
                         | Vorlage:Cite book/Name
                       }}
                 }}{{#if: 
                     | {{#if:  
                         | , [[|Vorlage:Cite book/Name]]
                         | Vorlage:Cite book/Name
                       }}
                 }}{{#if: 
                     | {{#if:  
                         | , [[|Vorlage:Cite book/Name]]
                         | Vorlage:Cite book/Name
                       }}
                 }}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}
             }}Vorlage:Cite book/Name|{{#if: 
               |  
               | {{#if: Igor
                 | {{#if: 
                     |  [[|Vorlage:Cite book/Name]]
                     | Vorlage:Cite book/Name
                   }}
                 }}{{#if: 
                     | {{#if:  
                         | , [[|Vorlage:Cite book/Name]]
                         | Vorlage:Cite book/Name
                        }}
                 }}{{#if: 
                     | {{#if:  
                         | , [[|Vorlage:Cite book/Name]]
                         | Vorlage:Cite book/Name
                       }}
                 }}{{#if: 
                     | {{#if:  
                         | , [[|Vorlage:Cite book/Name]]
                         | Vorlage:Cite book/Name
                       }}
                 }}{{#if: 
                     | {{#if:  
                         | , [[|Vorlage:Cite book/Name]]
                         | Vorlage:Cite book/Name
                       }}
                 }}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}
             }}Vorlage:Cite book/Name: }}{{#if:Vorlage:Cite book/URL|{{#if:{{#if: SWT Vs. Swing Performance Comparison | {{#invoke: WLink|getEscapedTitle|1=SWT Vs. Swing Performance Comparison}} | ? }}|[{{#invoke:Vorlage:Internetquelle|archivURL|1={{#invoke:URLutil|getNormalized|1=Vorlage:Cite book/URL}}}} {{#invoke:Vorlage:Internetquelle|TitelFormat|titel={{#if: SWT Vs. Swing Performance Comparison | {{#invoke: WLink|getEscapedTitle|1=SWT Vs. Swing Performance Comparison}} | ? }}}}]{{#if:PDF| (PDF)}}{{#if:{{#if:  | ( }}{{#if:  | Originaltitel: {{{script-title}}} }}{{#if:   | {{#if:  | ,  }}deutsch: {{{trans-title}}} }}{{#if:  | ) }}| {{#if:  | ( }}{{#if:  | Originaltitel: {{{script-title}}} }}{{#if:   | {{#if:  | ,  }}deutsch: {{{trans-title}}} }}{{#if:  | ) }}{{#invoke:Vorlage:Internetquelle|Endpunkt|titel={{#if:  | ( }}{{#if:  | Originaltitel: {{{script-title}}} }}{{#if:   | {{#if:  | ,  }}deutsch: {{{trans-title}}} }}{{#if:  | ) }}}}}}}}|{{#if:http://cosylib.cosylab.com/pub/CSS/DOC-SWT_Vs._Swing_Performance_Comparison.pdf%7C{{#if:{{#invoke:TemplUtl%7Cfaculty%7CVorlage:Cite book/URL}}|{{#invoke:Vorlage:Internetquelle|TitelFormat|titel={{#invoke:WLink|getEscapedTitle|1={{#if: SWT Vs. Swing Performance Comparison | {{#invoke: WLink|getEscapedTitle|1=SWT Vs. Swing Performance Comparison}} | ? }}}}}}|[{{#invoke:URLutil|getNormalized|1=http://cosylib.cosylab.com/pub/CSS/DOC-SWT_Vs._Swing_Performance_Comparison.pdf}} {{#invoke:Vorlage:Internetquelle|TitelFormat|titel={{#invoke:WLink|getEscapedTitle|1={{#if: SWT Vs. Swing Performance Comparison | {{#invoke: WLink|getEscapedTitle|1=SWT Vs. Swing Performance Comparison}} | ? }}}}}}]}}{{#if:PDF| (PDF{{#if:{{#if:  | ( }}{{#if:  | Originaltitel: {{{script-title}}} }}{{#if:   | {{#if:  | ,  }}deutsch: {{{trans-title}}} }}{{#if:  | ) }}Vorlage:Cite book/URLcosylab.com {{#if:  | via {{{via}}} }}Vorlage:Cite book/DateVorlage:Cite book/URL{{#if: {{#if: 16. September 2009
                 | {{#iferror: {{#invoke:DateTime|format|16. September 2009|ISO}}
                     | 0001-01-01
                   }}
                 | 0001-01-01
               }} | {{#if:{{#invoke:TemplUtl|faculty|{{#if: 16. September 2009
                         | {{#if: {{#invoke:DateTime|format|16. September 2009 |ISO|noerror=1}} || 1 }}
                         | 1
                       }}}}||1}}}}
          | )
          | {{#if:{{#ifeq:|de||{{#if:|1}}}}{{#if:  | {{{at}}}{{#if:  | ,  }}}}{{#if:  | {{{id}}}{{#if:  | ,  }}}}{{#if:  | {{{doi}}}{{#if:  | ,  }}}}{{#if:  | PMID {{{pmid}}}{{#if:  | ,  }}}}{{#if:  | {{{arxiv}}}{{#if:  | ,  }}}}{{#if:  | Bibcode: {{{bibcode}}}{{#if:  | ,  }}}}{{#if:  | Volltext bei PMC: {{{pmc}}}{{#if:  | ,  }}}}| ; 
              | )}}}}}}{{#if:{{#if:  | ( }}{{#if:  | Originaltitel: {{{script-title}}} }}{{#if:   | {{#if:  | ,  }}deutsch: {{{trans-title}}} }}{{#if:  | ) }}| {{#if:  | ( }}{{#if:  | Originaltitel: {{{script-title}}} }}{{#if:   | {{#if:  | ,  }}deutsch: {{{trans-title}}} }}{{#if:  | ) }}{{#invoke:Vorlage:Internetquelle|Endpunkt|titel={{#if:  | ( }}{{#if:  | Originaltitel: {{{script-title}}} }}{{#if:   | {{#if:  | ,  }}deutsch: {{{trans-title}}} }}{{#if:  | ) }}}}}}}}}}{{#if:http://cosylib.cosylab.com/pub/CSS/DOC-SWT_Vs._Swing_Performance_Comparison.pdf%7C{{#if:{{#invoke:URLutil%7CisResourceURL%7C1=http://cosylib.cosylab.com/pub/CSS/DOC-SWT_Vs._Swing_Performance_Comparison.pdf}}%7C%7C}}}}{{#if:{{#if: SWT Vs. Swing Performance Comparison | {{#invoke: WLink|getEscapedTitle|1=SWT Vs. Swing Performance Comparison}} | ? }}|{{#if:{{#invoke:WLink|isValidLinktext|1={{#if: SWT Vs. Swing Performance Comparison | {{#invoke: WLink|getEscapedTitle|1=SWT Vs. Swing Performance Comparison}} | ? }}|lines=0}}||}}}}{{#if: | In: {{#invoke:Vorlage:Internetquelle|TitelFormat|titel=}}}}{{#if: cosylab.com {{#if:  | via {{{via}}} }}| cosylab.com {{#if:  | via {{{via}}} }}{{#if: Vorlage:Cite book/DateVorlage:Cite book/URL|,|{{#if: {{#if: 16. September 2009
                 | {{#iferror: {{#invoke:DateTime|format|16. September 2009|ISO}}
                     | 0001-01-01
                   }}
                 | 0001-01-01
               }} | {{#if:{{#invoke:TemplUtl|faculty|{{#if: 16. September 2009
                         | {{#if: {{#invoke:DateTime|format|16. September 2009 |ISO|noerror=1}} || 1 }}
                         | 1
                       }}}}|;|,}}}}}}}}{{#if: Vorlage:Cite book/Date| {{#if:{{#invoke:DateTime|format|Vorlage:Cite book/Date|noerror=1}}
            |{{#invoke:DateTime|format|Vorlage:Cite book/Date|T._Monat JJJJ}}
            |{{#invoke:TemplUtl|failure|1=Fehler bei Vorlage:Internetquelle, datum=Vorlage:Cite book/Date|class=Zitationswartung}} }}{{#if: Vorlage:Cite book/URL|,|{{#if: {{#if: 16. September 2009
                 | {{#iferror: {{#invoke:DateTime|format|16. September 2009|ISO}}
                     | 0001-01-01
                   }}
                 | 0001-01-01
               }} | {{#if:{{#invoke:TemplUtl|faculty|{{#if: 16. September 2009
                         | {{#if: {{#invoke:DateTime|format|16. September 2009 |ISO|noerror=1}} || 1 }}
                         | 1
                       }}}}|;|,}}}}}}}}{{#if: | S. {{#if: Vorlage:Cite book/URL|,|{{#if: {{#if: 16. September 2009
                 | {{#iferror: {{#invoke:DateTime|format|16. September 2009|ISO}}
                     | 0001-01-01
                   }}
                 | 0001-01-01
               }} | {{#if:{{#invoke:TemplUtl|faculty|{{#if: 16. September 2009
                         | {{#if: {{#invoke:DateTime|format|16. September 2009 |ISO|noerror=1}} || 1 }}
                         | 1
                       }}}}|;|,}}}}}}}}{{#if: Vorlage:Cite book/URL{{#invoke:TemplUtl|faculty|Vorlage:Cite book/URL}}| {{#if:Vorlage:Cite book/Datecosylab.com {{#if:  | via {{{via}}} }}|{{#if:Vorlage:Cite book/URL|archiviert|ehemals}}|{{#if:Vorlage:Cite book/URL|Archiviert|Ehemals}}}} {{#if:Vorlage:Cite book/URL|vom|im}} Vorlage:Referrer{{#if:{{#invoke:TemplUtl|faculty|Vorlage:Cite book/URL}}| (nicht mehr online verfügbar)}}{{#if: Vorlage:Cite book/URL| am {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}|Vorlage:Cite book/URL{{#if:34118||(?)}}}}}}{{#if: Initial expectation before performing this benchmark was to find SWT outperform Swing. This expectation stemmed from greater responsiveness of SWT-based Java applications (e.g., Eclipse IDE) compared to Swing-based applications. However, this expectation could not be quantitatively confirmed.{{#if: 16. September 2009
                 | {{#iferror: {{#invoke:DateTime|format|16. September 2009|ISO}}
                     | 0001-01-01
                   }}
                 | 0001-01-01
               }}|;}}}}{{#if: {{#if: 16. September 2009
                 | {{#iferror: {{#invoke:DateTime|format|16. September 2009|ISO}}
                     | 0001-01-01
                   }}
                 | 0001-01-01
               }}| {{#if:Vorlage:Cite book/Datecosylab.com {{#if:  | via {{{via}}} }}Vorlage:Cite book/URL{{#invoke:TemplUtl|faculty|Vorlage:Cite book/URL}}|abgerufen|Abgerufen}} {{#switch: {{#invoke:Str|len| {{#invoke:DateTime|format| {{#if: 16. September 2009
                 | {{#iferror: {{#invoke:DateTime|format|16. September 2009|ISO}}
                     | 0001-01-01
                   }}
                 | 0001-01-01
               }} |ISO|noerror=1}} }}
       |4=im Jahr
       |7=im
       |10=am
       |#default={{#invoke:TemplUtl|failure|1=Fehler bei Vorlage:Internetquelle, abruf={{#if: 16. September 2009
                 | {{#iferror: {{#invoke:DateTime|format|16. September 2009|ISO}}
                     | 0001-01-01
                   }}
                 | 0001-01-01
               }}|class=Zitationswartung}} }} {{#invoke:DateTime|format|{{#if: 16. September 2009
                 | {{#iferror: {{#invoke:DateTime|format|16. September 2009|ISO}}
                     | 0001-01-01
                   }}
                 | 0001-01-01
               }}|T._Monat JJJJ}}
    | {{#invoke:TemplUtl|failure|1=Vorlage:Internetquelle | abruf=2026-MM-TT ist Pflichtparameter}} }}{{#if:{{#ifeq:|de||{{#if:|1}}}}{{#if:  | {{{at}}}{{#if:  | ,  }}}}{{#if:  | {{{id}}}{{#if:  | ,  }}}}{{#if:  | {{{doi}}}{{#if:  | ,  }}}}{{#if:  | PMID {{{pmid}}}{{#if:  | ,  }}}}{{#if:  | {{{arxiv}}}{{#if:  | ,  }}}}{{#if:  | Bibcode: {{{bibcode}}}{{#if:  | ,  }}}}{{#if:  | Volltext bei PMC: {{{pmc}}}{{#if:  | ,  }}}}|{{#if:{{#if:  | ( }}{{#if:  | Originaltitel: {{{script-title}}} }}{{#if:   | {{#if:  | ,  }}deutsch: {{{trans-title}}} }}{{#if:  | ) }}Vorlage:Cite book/URLcosylab.com {{#if:  | via {{{via}}} }}Vorlage:Cite book/DateVorlage:Cite book/URL{{#if: {{#if: 16. September 2009
                 | {{#iferror: {{#invoke:DateTime|format|16. September 2009|ISO}}
                     | 0001-01-01
                   }}
                 | 0001-01-01
               }} | {{#if:{{#invoke:TemplUtl|faculty|{{#if: 16. September 2009
                         | {{#if: {{#invoke:DateTime|format|16. September 2009 |ISO|noerror=1}} || 1 }}
                         | 1
                       }}}}||1}}}}
       |  (
       | {{#if:PDF | |  (}}
       }}{{#ifeq:{{#if:||de}}|de||
          {{#invoke:Multilingual|format||slang=!|split=[%s,]+|shift=m|separator=, }}}}{{#if: {{#if:  | {{{at}}}{{#if:  | ,  }}}}{{#if:  | {{{id}}}{{#if:  | ,  }}}}{{#if:  | {{{doi}}}{{#if:  | ,  }}}}{{#if:  | PMID {{{pmid}}}{{#if:  | ,  }}}}{{#if:  | {{{arxiv}}}{{#if:  | ,  }}}}{{#if:  | Bibcode: {{{bibcode}}}{{#if:  | ,  }}}}{{#if:  | Volltext bei PMC: {{{pmc}}}{{#if:  | ,  }}}}|{{#ifeq:{{#if:||de}}|de||, }}{{#if:  | {{{at}}}{{#if:  | ,  }}}}{{#if:  | {{{id}}}{{#if:  | ,  }}}}{{#if:  | {{{doi}}}{{#if:  | ,  }}}}{{#if:  | PMID {{{pmid}}}{{#if:  | ,  }}}}{{#if:  | {{{arxiv}}}{{#if:  | ,  }}}}{{#if:  | Bibcode: {{{bibcode}}}{{#if:  | ,  }}}}{{#if:  | Volltext bei PMC: {{{pmc}}}{{#if:  | ,  }}}}}})}}{{#if: Vorlage:Cite book/DateVorlage:Cite book/URL{{#if: {{#if: 16. September 2009
                 | {{#iferror: {{#invoke:DateTime|format|16. September 2009|ISO}}
                     | 0001-01-01
                   }}
                 | 0001-01-01
               }} | {{#if:{{#invoke:TemplUtl|faculty|{{#if: 16. September 2009
                         | {{#if: {{#invoke:DateTime|format|16. September 2009 |ISO|noerror=1}} || 1 }}
                         | 1
                       }}}}||1}} }}{{#if:  | {{{at}}}{{#if:  | ,  }}}}{{#if:  | {{{id}}}{{#if:  | ,  }}}}{{#if:  | {{{doi}}}{{#if:  | ,  }}}}{{#if:  | PMID {{{pmid}}}{{#if:  | ,  }}}}{{#if:  | {{{arxiv}}}{{#if:  | ,  }}}}{{#if:  | Bibcode: {{{bibcode}}}{{#if:  | ,  }}}}{{#if:  | Volltext bei PMC: {{{pmc}}}{{#if:  | ,  }}}}Initial expectation before performing this benchmark was to find SWT outperform Swing. This expectation stemmed from greater responsiveness of SWT-based Java applications (e.g., Eclipse IDE) compared to Swing-based applications. However, this expectation could not be quantitatively confirmed.|{{#if: Initial expectation before performing this benchmark was to find SWT outperform Swing. This expectation stemmed from greater responsiveness of SWT-based Java applications (e.g., Eclipse IDE) compared to Swing-based applications. However, this expectation could not be quantitatively confirmed.|: {{
 #if: 
 | {{
     #ifeq: {{#if:{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|de}} | de
     | Vorlage:Str trim
     | {{#invoke:Vorlage:lang|flat}}
     }}
 | {{#ifeq: {{#if:{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|de}} | de
     | „Vorlage:Str trim“
     | {{#invoke:Text|quote
         |1={{#if: 
              | {{#invoke:Vorlage:lang|flat}}
              | {{#invoke:Vorlage:lang|flat}} }}
         |2={{#if: {{#invoke:TemplUtl|faculty|}}|de-CH|de}}
         |3=1}} }}

}}{{#if:

   |  (<templatestyles src="Person/styles.css" />{{#if:  | :  }}{{#if:  | , deutsch: „“ }})
   | {{#if: 
       |  ({{#if:  | , deutsch: „“ }})
       | {{#if:  |  (deutsch: „“) }}
 }}

}}{{#if: Initial expectation before performing this benchmark was to find SWT outperform Swing. This expectation stemmed from greater responsiveness of SWT-based Java applications (e.g., Eclipse IDE) compared to Swing-based applications. However, this expectation could not be quantitatively confirmed.

   | {{#if: 
       | {{#if: Initial expectation before performing this benchmark was to find SWT outperform Swing. This expectation stemmed from greater responsiveness of SWT-based Java applications (e.g., Eclipse IDE) compared to Swing-based applications. However, this expectation could not be quantitatively confirmed.
           | Vorlage:": Text= und 1= gleichzeitig, bzw. Pipe zu viel }} }}
   | Vorlage:": Text= fehlt }}{{#if:  | {{#if: {{#invoke:Text|unstrip|{{{ref}}}}}
             | Vorlage:": Ungültiger Wert: ref=
             | {{{ref}}} }}

}}|.{{#if:{{#invoke:TemplUtl|faculty|Vorlage:Cite book/URL}}|{{#if:Vorlage:Cite book/URL||{{#ifeq: Vorlage:Cite book/URL | JaKeinHinweis |{{#switch:

   |0|=Vorlage:Toter Link/Core{{#if: http://cosylib.cosylab.com/pub/CSS/DOC-SWT_Vs._Swing_Performance_Comparison.pdf
       | {{#if:  | [1] }} (Seite {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. Suche im Internet Archive ){{#if: 
           | {{#if: deadurlausgeblendet | | Vorlage:Toter Link/archivebot }}
         }}
       |   (Seite {{#switch:|no|0|=|#default=dauerhaft }}nicht mehr abrufbar{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}.)
     }}{{#switch: 
         |no|0|=
         |#default={{#if:  ||  }}
    }}{{#invoke:TemplatePar|check
         |opt      = inline= url= text= datum= date= archivebot= bot= botlauf= fix-attempted= checked=
         |cat      = Wikipedia:Vorlagenfehler/Vorlage:Toter Link
         |errNS    = 0
         |template = Vorlage:Toter Link
         |format   = 
         |preview  = 1
    }}{{#if: http://cosylib.cosylab.com/pub/CSS/DOC-SWT_Vs._Swing_Performance_Comparison.pdf
      | {{#if:{{#invoke:URLutil|isWebURL|http://cosylib.cosylab.com/pub/CSS/DOC-SWT_Vs._Swing_Performance_Comparison.pdf}}
          || {{#if:  ||  }} 
        }}
      | {{#if: 
           | {{#if:  ||  }}
           | {{#if:  ||  }}
        }}
    }}{{#if: 
       | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}}
             || {{#if:  ||  }} 
         }}
    }}{{#switch: deadurl
         |checked|deadurl|= 
         |#default=  {{#if:  ||  }}
    }}|#default= https://wiki-de.moshellshocker.dns64.de/index.php?title=Wikipedia:Defekte_Weblinks&dwl=http://cosylib.cosylab.com/pub/CSS/DOC-SWT_Vs._Swing_Performance_Comparison.pdf Die nachstehende Seite ist {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar]{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. (Suche im Internet Archive. )  {{#if: 
            | {{#if: deadurlausgeblendet | | Vorlage:Toter Link/archivebot }}
         }}Vorlage:Toter Link/Core{{#switch: 
          |no|0|=
          |#default= {{#if:  ||  }}
        }}{{#invoke:TemplatePar|check
         |all      = inline= url=
         |opt      = datum= date= archivebot= bot= botlauf= fix-attempted= checked=
         |cat      = Wikipedia:Vorlagenfehler/Vorlage:Toter Link
         |errNS    = 0
         |template = Vorlage:Toter Link
         |format   = 
         |preview  = 1
       }}{{#if: http://cosylib.cosylab.com/pub/CSS/DOC-SWT_Vs._Swing_Performance_Comparison.pdf
       | {{#if:{{#invoke:URLutil|isWebURL|http://cosylib.cosylab.com/pub/CSS/DOC-SWT_Vs._Swing_Performance_Comparison.pdf}}
          || {{#if:  ||  }} 
        }}
    }}{{#if: 
         | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}}
             || {{#if:  ||  }} 
           }}
    }}{{#switch: deadurl
         |checked|deadurl|= 
         |#default=  {{#if:  ||  }}
    }}[http://cosylib.cosylab.com/pub/CSS/DOC-SWT_Vs._Swing_Performance_Comparison.pdf }}|{{#switch: 
   |0|=Vorlage:Toter Link/Core{{#if: http://cosylib.cosylab.com/pub/CSS/DOC-SWT_Vs._Swing_Performance_Comparison.pdf
       | {{#if:  | [2] }} (Seite {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. Suche im Internet Archive ){{#if: 2019-04-19 12:47:28 InternetArchiveBot
           | {{#if:  | | Vorlage:Toter Link/archivebot }}
         }}
       |   (Seite {{#switch:|no|0|=|#default=dauerhaft }}nicht mehr abrufbar{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}.)
     }}{{#switch: 
         |no|0|=
         |#default={{#if:  ||  }}
    }}{{#invoke:TemplatePar|check
         |opt      = inline= url= text= datum= date= archivebot= bot= botlauf= fix-attempted= checked=
         |cat      = Wikipedia:Vorlagenfehler/Vorlage:Toter Link
         |errNS    = 0
         |template = Vorlage:Toter Link
         |format   = 
         |preview  = 1
    }}{{#if: http://cosylib.cosylab.com/pub/CSS/DOC-SWT_Vs._Swing_Performance_Comparison.pdf
      | {{#if:{{#invoke:URLutil|isWebURL|http://cosylib.cosylab.com/pub/CSS/DOC-SWT_Vs._Swing_Performance_Comparison.pdf}}
          || {{#if:  ||  }} 
        }}
      | {{#if: 
           | {{#if:  ||  }}
           | {{#if:  ||  }}
        }}
    }}{{#if: 
       | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}}
             || {{#if:  ||  }} 
         }}
    }}{{#switch: 
         |checked|deadurl|= 
         |#default=  {{#if:  ||  }}
    }}|#default= https://wiki-de.moshellshocker.dns64.de/index.php?title=Wikipedia:Defekte_Weblinks&dwl=http://cosylib.cosylab.com/pub/CSS/DOC-SWT_Vs._Swing_Performance_Comparison.pdf Die nachstehende Seite ist {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar]{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. (Suche im Internet Archive. )  {{#if: 2019-04-19 12:47:28 InternetArchiveBot
            | {{#if:  | | Vorlage:Toter Link/archivebot }}
         }}Vorlage:Toter Link/Core{{#switch: 
          |no|0|=
          |#default= {{#if:  ||  }}
        }}{{#invoke:TemplatePar|check
         |all      = inline= url=
         |opt      = datum= date= archivebot= bot= botlauf= fix-attempted= checked=
         |cat      = Wikipedia:Vorlagenfehler/Vorlage:Toter Link
         |errNS    = 0
         |template = Vorlage:Toter Link
         |format   = 
         |preview  = 1
       }}{{#if: http://cosylib.cosylab.com/pub/CSS/DOC-SWT_Vs._Swing_Performance_Comparison.pdf
       | {{#if:{{#invoke:URLutil|isWebURL|http://cosylib.cosylab.com/pub/CSS/DOC-SWT_Vs._Swing_Performance_Comparison.pdf}}
          || {{#if:  ||  }} 
        }}
    }}{{#if: 
         | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}}
             || {{#if:  ||  }} 
           }}
    }}{{#switch: 
         |checked|deadurl|= 
         |#default=  {{#if:  ||  }}
    }}[http://cosylib.cosylab.com/pub/CSS/DOC-SWT_Vs._Swing_Performance_Comparison.pdf }} }}}}}}}}}}{{#if:2019-04-19 12:47:28 InternetArchiveBot|
        {{#invoke:Vorlage:Internetquelle|archivBot|stamp=2019-04-19 12:47:28 InternetArchiveBot|text={{#if:Vorlage:Cite book/URL|Vorlage:Webarchiv/archiv-bot}}

}}}}{{#invoke:TemplatePar|check |all= url= titel= |opt= autor= hrsg= format= sprache= titelerg= werk= seiten= datum= abruf= zugriff= abruf-verborgen= archiv-url= archiv-datum= archiv-bot= kommentar= zitat= AT= CH= offline= |cat= {{#ifeq: 0 | 0 | Wikipedia:Vorlagenfehler/Vorlage:Internetquelle}} |template= Vorlage:Internetquelle |format=0 |preview=1 }}{{#invoke:TemplatePar|check

   |all     = url= title=
   |opt     =  script-title= trans-title= archive-url= archiveurl= archive-date= archivedate= authors= vauthors= author= author1= authorlink= authorlink1= author-link= author-link1= author2= author-link2= author3= author-link3= author4= author-link4= author5= author-link5= author6= author7= author8= author9= last= first= last1= first1= last2= first2= last3= first3= last4= first4= last5= first5= last6= first6= last7= first7= last8= first8= last9= first9= others= language= lang= format= website= work= publisher= via= pages= page= at= date= year= id= bibcode= doi= pmid= pmc= arxiv= archivedate= archive-date= archivebot= accessdate= access-date= quote= comment= url-status=  ref= url-access= orig-year= editor= editor-link= editor-last= editor-first= editor1-link= editor1-last= editor1-first= editor2= editor2-last= editor2-first= editor2-link= department= series= agency= location= place= publication-place= publication-date= type= asin= doi-broken-date= isbn= issn= jfm= jstor= lccn= mr= oclc= ol= osti= rfc= ssrn= zbl= postscript= df= mode= display-authors= display-editors= book-title= contribution-url=  offline= coauthors= month= authorlink2= authorlink3= authorlink4= authorlink5= last10= first10= last11= first11= last12= first12= last13= first13= last14= first14= last15= first15= last16= first16= last17= first17= last18= first18= last19= first19= last20= first20= last21= first21=
   |cat      = Wikipedia:Vorlagenfehler/Vorlage:Cite web
   |errNS    = 0
   |template = Vorlage:Cite web
   |format   = 
   |preview  = 1
  }}Vorlage:Cite book/URL{{#if: Vorlage:Cite book/Webarchiv
    | Vorlage:Cite book/Meldung
  }}{{#if:  | Vorlage:Cite book/Meldung }}Vorlage:Cite book/Meldung2{{#if: Vorlage:Cite book/ParamBool
    | Vorlage:Cite book/Meldung
  }}{{#if: Vorlage:Cite book/ParamBool
    | Vorlage:Cite book/Meldung
  }}{{#if: Vorlage:Cite book/ParamBool
    | Vorlage:Cite book/Meldung
  }}{{#if: Vorlage:Cite book/ParamBool
    | Vorlage:Cite book/Meldung
  }}{{#if: Vorlage:Cite book/ParamBool
     | Vorlage:Cite book/Meldung
  }}{{#ifexpr: {{#ifeq:Igor|^^|0|1}}{{#ifeq:^^|^^||+1}}{{#ifeq:^^|^^||+1}}{{#ifeq:^^|^^||+1}} > 1
    | Vorlage:Cite book/Meldung
  }}{{#ifexpr: {{#ifeq:^^|^^|0|1}}{{#ifeq:^^|^^||+1}}{{#ifeq:^^|^^||+1}}{{#ifeq:^^|^^||+1}} > 1
    | Vorlage:Cite book/Meldung
  }}{{#ifexpr: {{#ifeq:^^|^^|0|1}}{{#ifeq:^^|^^||+1}} > 1
    | Vorlage:Cite book/Meldung
  }}{{#ifexpr: {{#ifeq:^^|^^|0|1}}{{#ifeq:^^|^^||+1}} > 1
    | Vorlage:Cite book/Meldung
  }}{{#ifexpr: {{#ifeq:^^|^^|0|1}}{{#ifeq:https://web.archive.org/web/20080704103309/http://cosylib.cosylab.com/pub/CSS/DOC-SWT_Vs._Swing_Performance_Comparison.pdf%7C^^%7C%7C+1}} > 1
    | Vorlage:Cite book/Meldung
  }}{{#ifexpr: {{#ifeq:^^|^^|0|1}}{{#ifeq:2008-07-04|^^||+1}} > 1
    | Vorlage:Cite book/Meldung
  }}{{#ifexpr: {{#ifeq:^^|^^|0|1}}{{#ifeq:16. September 2009|^^||+1}} > 1
    | Vorlage:Cite book/Meldung
  }}{{#ifexpr: {{#ifeq:^^|^^|0|1}}{{#ifeq:^^|^^||+1}} > 1
    | Vorlage:Cite book/Meldung
  }}{{#ifexpr: {{#ifeq:^^|^^|0|1}}{{#ifeq:^^|^^||+1}} > 1
    | Vorlage:Cite book/Meldung
  }}</ref>

Beispiel

Als Beispiel für eine Swing-Anwendung wird hier das Hallo-Welt-Programm angegeben:

<syntaxhighlight lang="java"> import javax.swing.*;

public class HelloWorldSwing {

   public static void main(String[] args) {
       // Verpacke den auszuführenden Quellcode in ein eigenes Runnable-Objekt, 
       // um diesen nachher im Event Dispatching Thread ausführen zu können
       Runnable guiCreator = new Runnable() {
           public void run() {
               // Erstellt das Swing-Fenster
               JFrame fenster = new JFrame("Hallo Welt mit Swing");
               // Swing anweisen, das Programm zu beenden, wenn das Fenster geschlossen wird
               fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
               // Fügt den "Hallo Welt"-Text hinzu
               JLabel label = new JLabel("Hallo Welt");
               fenster.add(label);
               // Zeigt das Fenster an
               fenster.setSize(300, 200);
               fenster.setVisible(true);
           }
       };
       // Führe den obigen Quellcode im Event-Dispatch-Thread aus
       SwingUtilities.invokeLater(guiCreator);
   }

} </syntaxhighlight>

Teile dieses Quellcodes werden von unterschiedlichen Threads ausgeführt. Der Thread, der die Methode main ausführt, ist für gewöhnlich nicht der Event-Dispatch-Thread (EDT). Swingkomponenten sollten jedoch generell nur vom EDT erzeugt und verändert werden (falls in der Dokumentation nicht ausdrücklich anderes steht). Daher wird der Quellcode für die GUI in ein eigenes Runnable-Objekt verpackt. Der Thread, der die Methode main ausführt, erzeugt also nur das Runnable-Objekt und weist Swing an, diesen Quellcode später im EDT auszuführen.

Erweiterungen

Swing lässt sich an verschiedenen Stellen mittels des in Swing eingebauten Plug-In-Konzeptes erweitern. Typische Erweiterungen betreffen Look&Feels, Layoutmanager und weitere Komponenten.

Das SUN-Open-Source-Projekt SwingLabs bietet eine Reihe von Erweiterungen für Swing und dient als Testumgebung für zukünftige Erweiterungen von Swing. Unter anderem wurden in SwingLabs die in Java 6 eingeführten Klassen GroupLayout, SystemTray und Desktop gehostet. Weitere Erweiterungen werden von der java.net Java Desktop Community<ref><templatestyles src="Webarchiv/styles.css" />{{#if:20050729002040

      | {{#ifeq: 20050729002040 | *
    | Vorlage:Webarchiv/Wartung/Stern{{#if: Java Desktop | {{#invoke:WLink|getEscapedTitle|Java Desktop}} | {{#invoke:Webarchiv|getdomain|http://community.java.net/javadesktop/}} }} (Archivversionen)
    | {{#iferror: {{#time: j. F Y|20050729002040}}
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/DatumDer Wert des Parameters {{#if: wayback | wayback | Datum }} muss ein gültiger Zeitstempel der Form YYYYMMDDHHMMSS sein!
         | {{#if: Java Desktop | {{#invoke:WLink|getEscapedTitle|Java Desktop}} | {{#invoke:Webarchiv|getdomain|http://community.java.net/javadesktop/}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if: 2019-04-19 12:47:28 InternetArchiveBot | 2019-04-19 12:47:28 InternetArchiveBot |  }} |  des Vorlage:Referrer }} vom {{#time: j. F Y|20050729002040}} im Internet Archive{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
      }}
  }}
      | {{#if:
          | {{#iferror: {{#time: j. F Y|{{{webciteID}}}}}
    | {{#switch: {{#invoke:Str|len|{{{webciteID}}}}}
       | 16= {{#if: Java Desktop | {{#invoke:WLink|getEscapedTitle|Java Desktop}} | {{#invoke:Webarchiv|getdomain|http://community.java.net/javadesktop/}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if: 2019-04-19 12:47:28 InternetArchiveBot | 2019-04-19 12:47:28 InternetArchiveBot |  }} |  des Vorlage:Referrer }} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{{webciteID}}}|1|10}}/86400}} }} days}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
       | 9 = {{#if: Java Desktop | {{#invoke:WLink|getEscapedTitle|Java Desktop}} | {{#invoke:Webarchiv|getdomain|http://community.java.net/javadesktop/}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if: 2019-04-19 12:47:28 InternetArchiveBot | 2019-04-19 12:47:28 InternetArchiveBot |  }} |  des Vorlage:Referrer}} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{#invoke:Expr|base62|{{{webciteID}}}}}|1|10}}/86400}} }} days}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
       | #default= Der Wert des Parameters {{#if: webciteID | webciteID | ID }} muss entweder ein Zeitstempel der Form YYYYMMDDHHMMSS oder ein Schüsselwert mit 9 Zeichen oder eine 16-stellige Zahl sein!Vorlage:Webarchiv/Wartung/webcitation{{#if:  || }}
      }}
    | c|{{{webciteID}}}}} {{#if: Java Desktop | {{#invoke:WLink|getEscapedTitle|Java Desktop}} | {{#invoke:Webarchiv|getdomain|http://community.java.net/javadesktop/}} }} (Memento{{#if: {{#if: 2019-04-19 12:47:28 InternetArchiveBot | 2019-04-19 12:47:28 InternetArchiveBot |  }} |  des Vorlage:Referrer}} vom {{#time: j. F Y|{{{webciteID}}}}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
  }}
          | {{#if: 
              | Vorlage:Webarchiv/Today
              | {{#if:
                      | Vorlage:Webarchiv/Generisch
                      | {{#if: Java Desktop | {{#invoke:WLink|getEscapedTitle|Java Desktop}} | {{#invoke:Webarchiv|getdomain|http://community.java.net/javadesktop/}} }}  
                 }}}}}}}}{{#if:2019-04-19 12:47:28 InternetArchiveBot
    | Vorlage:Webarchiv/archiv-bot
  }}{{#invoke:TemplatePar|check
     |all      = url=
     |opt      = text= wayback= webciteID= archive-is= archive-today= archiv-url= archiv-datum= ()= archiv-bot= format= original=
     |cat      = Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
     |errNS    = 0
     |template = Vorlage:Webarchiv
     |format   = *
     |preview  = 1
  }}{{#ifexpr: {{#if:20050729002040|1|0}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}} <> 1
    | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Genau einer der Parameter 'wayback', 'webciteID', 'archive-today', 'archive-is' oder 'archiv-url' muss angegeben werden.|1}}
  }}{{#if: 
    | {{#switch: {{#invoke:Webarchiv|getdomain|{{{archiv-url}}}}}
        | web.archive.org = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von Internet Archive erkannt, bitte Parameter 'wayback' benutzen.|1}} 
        | webcitation.org = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von WebCite erkannt, bitte Parameter 'webciteID' benutzen.|1}} 
        | archive.today |archive.is |archive.ph |archive.fo |archive.li |archive.md |archive.vn = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von archive.today erkannt, bitte Parameter 'archive-today' benutzen.|1}}
      }}{{#if: 
         | {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}
             | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Wert des Parameter 'archiv-datum' ist ungültig oder hat ein ungültiges Format.|1}}
          |  }} 
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Pflichtparameter 'archiv-datum' wurde nicht angegeben.|1}}
      }}
    | {{#if: 
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Parameter 'archiv-datum' ist nur in Verbindung mit 'archiv-url' angebbar.|1}}
      }}
  }}{{#if:{{#invoke:URLutil|isHostPathResource|http://community.java.net/javadesktop/}}
    || {{#if:  || }}
  }}{{#if: Java Desktop
    | {{#if: {{#invoke:WLink|isBracketedLink|Java Desktop}}
        | {{#if:  || }}
      }}
    | {{#if:  || }}Vorlage:Webarchiv/Wartung/Linktext_fehlt
  }}{{#switch: 
    |addlarchives|addlpages= {{#if:  || }}{{#if: 1 |Vorlage:Webarchiv/Wartung/Parameter}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: enWP-Wert im Parameter 'format'.|1}}
  }}{{#ifeq: {{#invoke:Str|find|http://community.java.net/javadesktop/%7Carchiv}} |-1
    || {{#ifeq: {{#invoke:Str|find|{{#invoke:Str|cropleft|http://community.java.net/javadesktop/%7C4}}%7Chttp}} |-1
         || {{#switch: {{#invoke:Webarchiv|getdomain|http://community.java.net/javadesktop/ }}
              | abendblatt.de | daserste.ndr.de | inarchive.com | webcitation.org = 
              | #default = {{#if:  || }}{{#if: 1 |Vorlage:Webarchiv/Wartung/URL}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Archiv-URL im Parameter 'url' anstatt URL der Originalquelle. Entferne den vor der Original-URL stehenden Mementobestandteil und setze den Archivierungszeitstempel in den Parameter 'wayback', 'webciteID', 'archive.today' oder 'archive-is' ein, sofern nicht bereits befüllt.|1}}
            }} 
       }}
  }}</ref> im Java Desktop Swing Depot gesammelt.<ref><templatestyles src="Webarchiv/styles.css" />{{#if:20090609154718
      | {{#ifeq: 20090609154718 | *
    | Vorlage:Webarchiv/Wartung/Stern{{#if: Swing Depot: Component Suites | {{#invoke:WLink|getEscapedTitle|Swing Depot: Component Suites}} | {{#invoke:Webarchiv|getdomain|http://www.javadesktop.org/rollups/components/index.html}} }} (Archivversionen)
    | {{#iferror: {{#time: j. F Y|20090609154718}}
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/DatumDer Wert des Parameters {{#if: wayback | wayback | Datum }} muss ein gültiger Zeitstempel der Form YYYYMMDDHHMMSS sein!
         | {{#if: Swing Depot: Component Suites | {{#invoke:WLink|getEscapedTitle|Swing Depot: Component Suites}} | {{#invoke:Webarchiv|getdomain|http://www.javadesktop.org/rollups/components/index.html}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if: 2019-05-16 18:29:55 InternetArchiveBot | 2019-05-16 18:29:55 InternetArchiveBot |  }} |  des Vorlage:Referrer }} vom {{#time: j. F Y|20090609154718}} im Internet Archive{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
      }}
  }}
      | {{#if:
          | {{#iferror: {{#time: j. F Y|{{{webciteID}}}}}
    | {{#switch: {{#invoke:Str|len|{{{webciteID}}}}}
       | 16= {{#if: Swing Depot: Component Suites | {{#invoke:WLink|getEscapedTitle|Swing Depot: Component Suites}} | {{#invoke:Webarchiv|getdomain|http://www.javadesktop.org/rollups/components/index.html}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if: 2019-05-16 18:29:55 InternetArchiveBot | 2019-05-16 18:29:55 InternetArchiveBot |  }} |  des Vorlage:Referrer }} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{{webciteID}}}|1|10}}/86400}} }} days}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
       | 9 = {{#if: Swing Depot: Component Suites | {{#invoke:WLink|getEscapedTitle|Swing Depot: Component Suites}} | {{#invoke:Webarchiv|getdomain|http://www.javadesktop.org/rollups/components/index.html}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if: 2019-05-16 18:29:55 InternetArchiveBot | 2019-05-16 18:29:55 InternetArchiveBot |  }} |  des Vorlage:Referrer}} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{#invoke:Expr|base62|{{{webciteID}}}}}|1|10}}/86400}} }} days}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
       | #default= Der Wert des Parameters {{#if: webciteID | webciteID | ID }} muss entweder ein Zeitstempel der Form YYYYMMDDHHMMSS oder ein Schüsselwert mit 9 Zeichen oder eine 16-stellige Zahl sein!Vorlage:Webarchiv/Wartung/webcitation{{#if:  || }}
      }}
    | c|{{{webciteID}}}}} {{#if: Swing Depot: Component Suites | {{#invoke:WLink|getEscapedTitle|Swing Depot: Component Suites}} | {{#invoke:Webarchiv|getdomain|http://www.javadesktop.org/rollups/components/index.html}} }} (Memento{{#if: {{#if: 2019-05-16 18:29:55 InternetArchiveBot | 2019-05-16 18:29:55 InternetArchiveBot |  }} |  des Vorlage:Referrer}} vom {{#time: j. F Y|{{{webciteID}}}}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
  }}
          | {{#if: 
              | Vorlage:Webarchiv/Today
              | {{#if:
                      | Vorlage:Webarchiv/Generisch
                      | {{#if: Swing Depot: Component Suites | {{#invoke:WLink|getEscapedTitle|Swing Depot: Component Suites}} | {{#invoke:Webarchiv|getdomain|http://www.javadesktop.org/rollups/components/index.html}} }}  
                 }}}}}}}}{{#if:2019-05-16 18:29:55 InternetArchiveBot
    | Vorlage:Webarchiv/archiv-bot
  }}{{#invoke:TemplatePar|check
     |all      = url=
     |opt      = text= wayback= webciteID= archive-is= archive-today= archiv-url= archiv-datum= ()= archiv-bot= format= original=
     |cat      = Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
     |errNS    = 0
     |template = Vorlage:Webarchiv
     |format   = *
     |preview  = 1
  }}{{#ifexpr: {{#if:20090609154718|1|0}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}} <> 1
    | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Genau einer der Parameter 'wayback', 'webciteID', 'archive-today', 'archive-is' oder 'archiv-url' muss angegeben werden.|1}}
  }}{{#if: 
    | {{#switch: {{#invoke:Webarchiv|getdomain|{{{archiv-url}}}}}
        | web.archive.org = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von Internet Archive erkannt, bitte Parameter 'wayback' benutzen.|1}} 
        | webcitation.org = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von WebCite erkannt, bitte Parameter 'webciteID' benutzen.|1}} 
        | archive.today |archive.is |archive.ph |archive.fo |archive.li |archive.md |archive.vn = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von archive.today erkannt, bitte Parameter 'archive-today' benutzen.|1}}
      }}{{#if: 
         | {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}
             | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Wert des Parameter 'archiv-datum' ist ungültig oder hat ein ungültiges Format.|1}}
          |  }} 
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Pflichtparameter 'archiv-datum' wurde nicht angegeben.|1}}
      }}
    | {{#if: 
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Parameter 'archiv-datum' ist nur in Verbindung mit 'archiv-url' angebbar.|1}}
      }}
  }}{{#if:{{#invoke:URLutil|isHostPathResource|http://www.javadesktop.org/rollups/components/index.html}}
    || {{#if:  || }}
  }}{{#if: Swing Depot: Component Suites
    | {{#if: {{#invoke:WLink|isBracketedLink|Swing Depot: Component Suites}}
        | {{#if:  || }}
      }}
    | {{#if:  || }}Vorlage:Webarchiv/Wartung/Linktext_fehlt
  }}{{#switch: 
    |addlarchives|addlpages= {{#if:  || }}{{#if: 1 |Vorlage:Webarchiv/Wartung/Parameter}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: enWP-Wert im Parameter 'format'.|1}}
  }}{{#ifeq: {{#invoke:Str|find|http://www.javadesktop.org/rollups/components/index.html%7Carchiv}} |-1
    || {{#ifeq: {{#invoke:Str|find|{{#invoke:Str|cropleft|http://www.javadesktop.org/rollups/components/index.html%7C4}}%7Chttp}} |-1
         || {{#switch: {{#invoke:Webarchiv|getdomain|http://www.javadesktop.org/rollups/components/index.html }}
              | abendblatt.de | daserste.ndr.de | inarchive.com | webcitation.org = 
              | #default = {{#if:  || }}{{#if: 1 |Vorlage:Webarchiv/Wartung/URL}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Archiv-URL im Parameter 'url' anstatt URL der Originalquelle. Entferne den vor der Original-URL stehenden Mementobestandteil und setze den Archivierungszeitstempel in den Parameter 'wayback', 'webciteID', 'archive.today' oder 'archive-is' ein, sofern nicht bereits befüllt.|1}}
            }} 
       }}
  }}</ref> JGoodies von Karsten Lentzsch bietet ebenso eine Reihe an Swing-Erweiterungen, wie beispielsweise das FormLayout.<ref>JGoodies Homepage</ref>

Das Projekt Spring Richclient bietet eine Integration von Swing in das Spring Framework. Es wird allerdings seit Mitte 2009 nicht mehr weiterentwickelt.

Editoren

Es gibt eine Reihe meist kostenpflichtiger WYSIWYG GUI Design Tools für Swing. Die folgenden sind die bekanntesten:<ref>{{#if:|{{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}| |}}}}{{#if:Bernhard Steppan|Bernhard Steppan: }}{{#if:|{{#if:Graphical User Interface: GUI-Builder für Eclipse im Vergleich|[{{#invoke:Vorlage:Internetquelle|archivURL|1={{#invoke:URLutil|getNormalized|1={{{archiv-url}}}}}}} {{#invoke:Vorlage:Internetquelle|TitelFormat|titel=Graphical User Interface: GUI-Builder für Eclipse im Vergleich}}]{{#if:| ({{{format}}})}}{{#if:| {{{titelerg}}}{{#invoke:Vorlage:Internetquelle|Endpunkt|titel={{{titelerg}}}}}}}}}|{{#if:https://www.computerwoche.de/a/gui-builder-fuer-eclipse-im-vergleich,550867%7C{{#if:{{#invoke:TemplUtl%7Cfaculty%7C}}%7C{{#invoke:Vorlage:Internetquelle%7CTitelFormat%7Ctitel={{#invoke:WLink%7CgetEscapedTitle%7C1=Graphical User Interface: GUI-Builder für Eclipse im Vergleich}}}}|[{{#invoke:URLutil|getNormalized|1=https://www.computerwoche.de/a/gui-builder-fuer-eclipse-im-vergleich,550867}} {{#invoke:Vorlage:Internetquelle|TitelFormat|titel={{#invoke:WLink|getEscapedTitle|1=Graphical User Interface: GUI-Builder für Eclipse im Vergleich}}}}]}}{{#if:| ({{{format}}}{{#if:Business-SoftwareComputerwoche2004-11-11{{#if: 2026-03-01 | {{#if:{{#invoke:TemplUtl|faculty|}}||1}}}}

          | )
          | {{#if:{{#ifeq:de|de||{{#if:de|1}}}}| ; 
              | )}}}}}}{{#if:| {{{titelerg}}}{{#invoke:Vorlage:Internetquelle|Endpunkt|titel={{{titelerg}}}}}}}}}}}{{#if:https://www.computerwoche.de/a/gui-builder-fuer-eclipse-im-vergleich,550867%7C{{#if:{{#invoke:URLutil%7CisResourceURL%7C1=https://www.computerwoche.de/a/gui-builder-fuer-eclipse-im-vergleich,550867}}%7C%7C}}}}{{#if:Graphical User Interface: GUI-Builder für Eclipse im Vergleich|{{#if:{{#invoke:WLink|isValidLinktext|1=Graphical User Interface: GUI-Builder für Eclipse im Vergleich|lines=0}}||}}}}{{#if: Business-Software| In: {{#invoke:Vorlage:Internetquelle|TitelFormat|titel=Business-Software}}}}{{#if: Computerwoche| Computerwoche{{#if: 2004-11-11|,|{{#if: 2026-03-01 | {{#if:{{#invoke:TemplUtl|faculty|}}|;|,}}}}}}}}{{#if: 2004-11-11| {{#if:{{#invoke:DateTime|format|2004-11-11|noerror=1}}
            |{{#invoke:DateTime|format|2004-11-11|T._Monat JJJJ}}
            |{{#invoke:TemplUtl|failure|1=Fehler bei Vorlage:Internetquelle, datum=2004-11-11|class=Zitationswartung}} }}{{#if: |,|{{#if: 2026-03-01 | {{#if:{{#invoke:TemplUtl|faculty|}}|;|,}}}}}}}}{{#if: | S. {{{seiten}}}{{#if: |,|{{#if: 2026-03-01 | {{#if:{{#invoke:TemplUtl|faculty|}}|;|,}}}}}}}}{{#if: {{#invoke:TemplUtl|faculty|}}| {{#if:2004-11-11Computerwoche|{{#if:|archiviert|ehemals}}|{{#if:|Archiviert|Ehemals}}}} {{#if:|vom|im}} Vorlage:Referrer{{#if:{{#invoke:TemplUtl|faculty|}}| (nicht mehr online verfügbar)}}{{#if: | am {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}|{{{archiv-datum}}}{{#if:34118||(?)}}}}}}{{#if: 2026-03-01|;}}}}{{#if: 2026-03-01| {{#if:2004-11-11Computerwoche{{#invoke:TemplUtl|faculty|}}|abgerufen|Abgerufen}} {{#switch: {{#invoke:Str|len| {{#invoke:DateTime|format| 2026-03-01 |ISO|noerror=1}} }}
       |4=im Jahr
       |7=im
       |10=am
       |#default={{#invoke:TemplUtl|failure|1=Fehler bei Vorlage:Internetquelle, abruf=2026-03-01|class=Zitationswartung}} }} {{#invoke:DateTime|format|2026-03-01|T._Monat JJJJ}}
    | {{#invoke:TemplUtl|failure|1=Vorlage:Internetquelle | abruf=2026-MM-TT ist Pflichtparameter}} }}{{#if:{{#ifeq:de|de||{{#if:de|1}}}}|{{#if:Business-SoftwareComputerwoche2004-11-11{{#if: 2026-03-01 | {{#if:{{#invoke:TemplUtl|faculty|}}||1}}}}
       |  (
       | {{#if: | |  (}}
       }}{{#ifeq:{{#if:de|de|de}}|de||
          {{#invoke:Multilingual|format|de|slang=!|split=[%s,]+|shift=m|separator=, }}}}{{#if: |{{#ifeq:{{#if:de|de|de}}|de||, }}{{{kommentar}}}}})}}{{#if: 2004-11-11{{#if: 2026-03-01 | {{#if:{{#invoke:TemplUtl|faculty|}}||1}} }}de|{{#if: |: {{
 #if: 
 | {{
     #ifeq: {{#if:{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|de}} | de
     | Vorlage:Str trim
     | {{#invoke:Vorlage:lang|flat}}
     }}
 | {{#ifeq: {{#if:{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|de}} | de
     | „Vorlage:Str trim“
     | {{#invoke:Text|quote
         |1={{#if: 
              | {{#invoke:Vorlage:lang|flat}}
              | {{#invoke:Vorlage:lang|flat}} }}
         |2={{#if: {{#invoke:TemplUtl|faculty|}}|de-CH|de}}
         |3=1}} }}

}}{{#if:

   |  (<templatestyles src="Person/styles.css" />{{#if:  | :  }}{{#if:  | , deutsch: „“ }})
   | {{#if: 
       |  ({{#if:  | , deutsch: „“ }})
       | {{#if:  |  (deutsch: „“) }}
 }}

}}{{#if: {{{zitat}}}

   | {{#if: 
       | {{#if: {{{zitat}}}
           | Vorlage:": Text= und 1= gleichzeitig, bzw. Pipe zu viel }} }}
   | Vorlage:": Text= fehlt }}{{#if:  | {{#if: {{#invoke:Text|unstrip|{{{ref}}}}}
             | Vorlage:": Ungültiger Wert: ref=
             | {{{ref}}} }}

}}|.{{#if:{{#invoke:TemplUtl|faculty|}}|{{#if:||{{#ifeq: | JaKeinHinweis |{{#switch:

   |0|=Vorlage:Toter Link/Core{{#if: https://www.computerwoche.de/a/gui-builder-fuer-eclipse-im-vergleich,550867
       | {{#if:  | [3] }} (Seite {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. Suche im Internet Archive ){{#if: 
           | {{#if: deadurlausgeblendet | | Vorlage:Toter Link/archivebot }}
         }}
       |   (Seite {{#switch:|no|0|=|#default=dauerhaft }}nicht mehr abrufbar{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}.)
     }}{{#switch: 
         |no|0|=
         |#default={{#if:  ||  }}
    }}{{#invoke:TemplatePar|check
         |opt      = inline= url= text= datum= date= archivebot= bot= botlauf= fix-attempted= checked=
         |cat      = Wikipedia:Vorlagenfehler/Vorlage:Toter Link
         |errNS    = 0
         |template = Vorlage:Toter Link
         |format   = 
         |preview  = 1
    }}{{#if: https://www.computerwoche.de/a/gui-builder-fuer-eclipse-im-vergleich,550867
      | {{#if:{{#invoke:URLutil|isWebURL|https://www.computerwoche.de/a/gui-builder-fuer-eclipse-im-vergleich,550867}}
          || {{#if:  ||  }} 
        }}
      | {{#if: 
           | {{#if:  ||  }}
           | {{#if:  ||  }}
        }}
    }}{{#if: 
       | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}}
             || {{#if:  ||  }} 
         }}
    }}{{#switch: deadurl
         |checked|deadurl|= 
         |#default=  {{#if:  ||  }}
    }}|#default= https://wiki-de.moshellshocker.dns64.de/index.php?title=Wikipedia:Defekte_Weblinks&dwl=https://www.computerwoche.de/a/gui-builder-fuer-eclipse-im-vergleich,550867 Die nachstehende Seite ist {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar]{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. (Suche im Internet Archive. )  {{#if: 
            | {{#if: deadurlausgeblendet | | Vorlage:Toter Link/archivebot }}
         }}Vorlage:Toter Link/Core{{#switch: 
          |no|0|=
          |#default= {{#if:  ||  }}
        }}{{#invoke:TemplatePar|check
         |all      = inline= url=
         |opt      = datum= date= archivebot= bot= botlauf= fix-attempted= checked=
         |cat      = Wikipedia:Vorlagenfehler/Vorlage:Toter Link
         |errNS    = 0
         |template = Vorlage:Toter Link
         |format   = 
         |preview  = 1
       }}{{#if: https://www.computerwoche.de/a/gui-builder-fuer-eclipse-im-vergleich,550867
       | {{#if:{{#invoke:URLutil|isWebURL|https://www.computerwoche.de/a/gui-builder-fuer-eclipse-im-vergleich,550867}}
          || {{#if:  ||  }} 
        }}
    }}{{#if: 
         | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}}
             || {{#if:  ||  }} 
           }}
    }}{{#switch: deadurl
         |checked|deadurl|= 
         |#default=  {{#if:  ||  }}
    }}[https://www.computerwoche.de/a/gui-builder-fuer-eclipse-im-vergleich,550867 }}|{{#switch: 
   |0|=Vorlage:Toter Link/Core{{#if: https://www.computerwoche.de/a/gui-builder-fuer-eclipse-im-vergleich,550867
       | {{#if:  | [4] }} (Seite {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. Suche im Internet Archive ){{#if: 
           | {{#if:  | | Vorlage:Toter Link/archivebot }}
         }}
       |   (Seite {{#switch:|no|0|=|#default=dauerhaft }}nicht mehr abrufbar{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}.)
     }}{{#switch: 
         |no|0|=
         |#default={{#if:  ||  }}
    }}{{#invoke:TemplatePar|check
         |opt      = inline= url= text= datum= date= archivebot= bot= botlauf= fix-attempted= checked=
         |cat      = Wikipedia:Vorlagenfehler/Vorlage:Toter Link
         |errNS    = 0
         |template = Vorlage:Toter Link
         |format   = 
         |preview  = 1
    }}{{#if: https://www.computerwoche.de/a/gui-builder-fuer-eclipse-im-vergleich,550867
      | {{#if:{{#invoke:URLutil|isWebURL|https://www.computerwoche.de/a/gui-builder-fuer-eclipse-im-vergleich,550867}}
          || {{#if:  ||  }} 
        }}
      | {{#if: 
           | {{#if:  ||  }}
           | {{#if:  ||  }}
        }}
    }}{{#if: 
       | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}}
             || {{#if:  ||  }} 
         }}
    }}{{#switch: 
         |checked|deadurl|= 
         |#default=  {{#if:  ||  }}
    }}|#default= https://wiki-de.moshellshocker.dns64.de/index.php?title=Wikipedia:Defekte_Weblinks&dwl=https://www.computerwoche.de/a/gui-builder-fuer-eclipse-im-vergleich,550867 Die nachstehende Seite ist {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar]{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. (Suche im Internet Archive. )  {{#if: 
            | {{#if:  | | Vorlage:Toter Link/archivebot }}
         }}Vorlage:Toter Link/Core{{#switch: 
          |no|0|=
          |#default= {{#if:  ||  }}
        }}{{#invoke:TemplatePar|check
         |all      = inline= url=
         |opt      = datum= date= archivebot= bot= botlauf= fix-attempted= checked=
         |cat      = Wikipedia:Vorlagenfehler/Vorlage:Toter Link
         |errNS    = 0
         |template = Vorlage:Toter Link
         |format   = 
         |preview  = 1
       }}{{#if: https://www.computerwoche.de/a/gui-builder-fuer-eclipse-im-vergleich,550867
       | {{#if:{{#invoke:URLutil|isWebURL|https://www.computerwoche.de/a/gui-builder-fuer-eclipse-im-vergleich,550867}}
          || {{#if:  ||  }} 
        }}
    }}{{#if: 
         | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}}
             || {{#if:  ||  }} 
           }}
    }}{{#switch: 
         |checked|deadurl|= 
         |#default=  {{#if:  ||  }}
    }}[https://www.computerwoche.de/a/gui-builder-fuer-eclipse-im-vergleich,550867 }} }}}}}}}}}}{{#if:|
        {{#invoke:Vorlage:Internetquelle|archivBot|stamp={{{archiv-bot}}}|text={{#if:|Vorlage:Webarchiv/archiv-bot}}

}}}}{{#invoke:TemplatePar|check |all= url= titel= |opt= autor= hrsg= format= sprache= titelerg= werk= seiten= datum= abruf= zugriff= abruf-verborgen= archiv-url= archiv-datum= archiv-bot= kommentar= zitat= AT= CH= offline= |cat= {{#ifeq: 0 | 0 | Wikipedia:Vorlagenfehler/Vorlage:Internetquelle}} |template= Vorlage:Internetquelle |format=0 |preview=1 }}</ref>

  • JFormDesigner – Kommerzieller Editor, sowohl eigenständig als auch als Eclipse-, IntelliJ-IDEA- und JBuilder-Plugin
  • Jigloo – Kommerzielles Eclipse-Plugin für Swing- und SWT-GUIs, kostenlos für nicht kommerzielle Zwecke
  • Eclipse WindowBuilder – offizielles Eclipse-Plugin für Swing-, SWT-, AWT- und GWT-Oberflächen
  • Matisse4MyEclipse – Portierung von Matisse, dem GUI-Builder der NetBeans IDE, für Eclipse und Swing, läuft nur unter MyEclipse
  • Visual Editor – Open-Source-Eclipse-Plugin für Swing- und SWT-GUIs (zugehöriges Entwicklungsprojekt ist seit April 2012 nicht mehr aktiv)

Literatur

  • Deutschsprachige Bücher:
    • David Geary: Graphic Java 2.0 Band II. Die JFC beherrschen (Swing). 3. Auflage. Markt+Technik, 15. November 1999, ISBN 3-8272-9590-4 (Übersetzung des englischen Originals)
    • David Geary: Graphic Java 2.0. Die JFC beherrschen (AWT). 3. Auflage. Markt+Technik, 15. Juli 1999, ISBN 3-8272-9585-8 (Übersetzung des englischen Originals)
    • Paul Fischer: Grafik-Programmierung mit Java-Swing. Addison-Wesley, 15. September 2001, ISBN 3-8273-1910-2
  • Englischsprachige Bücher:
    • Marc Loy, Robert Eckstein, Dave Wood: Java Swing. 2. Auflage. O’Reilly, November 2002, ISBN 0-596-00408-7
    • Kathy Walrath, Mary Campione, Alison Huml: The JFC Swing Tutorial. 2. Auflage. Addison-Wesley Professional, Februar 2004, ISBN 0-201-91467-0 (Referenz)
    • Kim Topley: Core Swing Advanced Programming. Prentice Hall, 2000, ISBN 0-13-083292-8
    • Kim Topley: Core, Java Foundation Classes. Prentice Hall, 1998, ISBN 0-13-080301-4
    • David M. Geary: Mastering the JFC – Volume II Swing. 3. Auflage. Prentice Hall PTR, 1998, ISBN 0-13-079667-0 (Referenz)
    • David M. Geary: Mastering the JFC – Volume I AWT. 3. Auflage. Prentice Hall PTR, 1999, ISBN 0-13-079666-2 (Referenz)

Weblinks

[[b:{{#if:|{{{lang}}}:}}{{#if:Java Standard: Grafische Oberflächen mit Swing|Java Standard: Grafische Oberflächen mit Swing|Swing (Java)}}|Wikibooks: {{#if:|{{{2}}}|{{#if:Java Standard: Grafische Oberflächen mit Swing|Java Standard: Grafische Oberflächen mit Swing|Swing (Java)}}}}]]{{#switch: 1

|1|= – Lern- und Lehrmaterialien |0|-= |X|x={{#switch: 0

      |0|4|10|12|14|100=}}

|#default= – {{{suffix}}}

}}{{#if: | ({{#invoke:Multilingual|format|{{{lang}}}|slang=!|shift=m}}) }}

{{#invoke:TemplatePar|check

  |opt= 1= 2= lang= suffix=
  |template=Vorlage:Wikibooks
  |cat=Wikipedia:Vorlagenfehler/Schwesterprojekt
  }}

Einzelnachweise

<references />

ar:جافا (لغة برمجة)#تطبيق Swing