Swing és una biblioteca Java Foundation Classes [JFC] i una extensió de l'Abstract Window Toolkit [AWT]. Java Swing ofereix una funcionalitat molt millorada sobre AWT, components nous, funcions de components ampliades i una excel·lent gestió d'esdeveniments amb suport per arrossegar i deixar anar.
Introducció de Java Swing
Swing té aproximadament quatre vegades el nombre de components de la interfície d'usuari [UI] que AWT i forma part de la distribució estàndard de Java. Segons els requisits de la GUI d'aplicacions actuals, AWT és una implementació limitada, no és del tot capaç de proporcionar els components necessaris per desenvolupar interfícies gràfics d'usuari complexes necessaris en les aplicacions comercials modernes. El conjunt de components AWT té bastants errors i ocupa molts recursos del sistema en comparació amb recursos Swing equivalents. Netscape va presentar la seva biblioteca Internet Foundation Classes [IFC] per utilitzar-la amb Java. Les seves classes es van fer molt populars entre els programadors que creaven GUI per a aplicacions comercials.
- Swing és un conjunt d'API (API- Conjunt de classes i interfícies)
- Swing es proporciona per dissenyar interfícies gràfiques d'usuari
- Swing és una biblioteca d'extensió de l'AWT (Abstract Window Toolkit) 5:00 – 5:30 pm
- Inclou components nous i millorats que han millorat l'aspecte i la funcionalitat de les GUI.
- Swing es pot utilitzar per crear (desenvolupar) les aplicacions GUI de swing autònomes com a servlets i miniaplicacions
- Utilitza l'arquitectura de disseny de model/vista.
- Swing és més portàtil i més flexible que AWT, el Swing està construït a sobre de l'AWT.
- Swing està escrit completament en Java.
- Els components Java Swing són independents de la plataforma i els components Swing són lleugers.
- Swing Admet un aspecte i sensació endollables i Swing proporciona components més potents.
- com ara taules, llistes, panells de desplaçament, selector de colors, panells amb pestanyes, etc.
- Més swing segueix MVC.
Diferència entre Java Swing i Java AWT
Hi ha certs punts en què Java Swing és diferent de Java AWT, com s'esmenta a continuació:
| Java AWT | Swing de Java com executar un script |
|---|---|
| Java AWT és una API per desenvolupar aplicacions GUI en Java. | Swing forma part de Java Foundation Classes i s'utilitza per crear diverses aplicacions. |
| Els components de l'AWT són pesats. | Els components de Java Swing són lleugers. |
| Els components depenen de la plataforma. | Els components són independents de la plataforma. |
| El temps d'execució és més que swing. | El temps d'execució és inferior a l'AWT. |
| Els components AWT requereixen el paquet java.awt. | Els components Swing requereixen el paquet javax.swing. |
Per saber més sobre el tema, consulteu Java Swing vs Java AWT .
Què és JFC?
JFC són les sigles de Java Foundation Classes. JFC és el conjunt de components de la GUI que simplifiquen les aplicacions d'escriptori. Molts programadors pensen que JFC i Swing són la mateixa cosa, però no és així. JFC conté Swing [Un paquet de components d'interfície d'usuari] i molts altres elements:
- Retallar i enganxar: suport de porta-retalls.
- Funcions d'accessibilitat: destinades a desenvolupar GUI per a usuaris amb discapacitat.
- Les funcions de colors d'escriptori es van introduir per primera vegada a Java 1.1
- Java 2D: té colors, imatges i suport de text millorats.
Característiques de la classe de swing
- Aspecte i sensació endollables.
- Utilitza l'arquitectura MVC.
- Components lleugers
- Plataforma Independent
- Funcions avançades com JTable, JTabbedPane, JScollPane, etc.
- Java és un llenguatge independent de la plataforma i s'executa a qualsevol màquina client, l'aspecte i la sensació de la GUI, propietat i lliurat per un sistema operatiu específic de la plataforma, simplement no afecta la GUI d'una aplicació construïda amb components Swing.
- Components lleugers: Començant amb el JDK 1.1, el seu desenvolupament de components lleugers compatible amb AWT. Perquè un component es qualifica com a lleuger, no ha de dependre de cap classe de sistema que no sigui Java [basada en O/s]. Els components swing tenen la seva pròpia visió compatible amb les classes d'aspecte i sensació de Java.
- Aspecte i sensació connectables: Aquesta característica permet a l'usuari canviar l'aspecte dels components Swing sense reiniciar una aplicació. La biblioteca Swing admet l'aspecte i la sensació dels components que segueixen sent els mateixos a totes les plataformes allà on s'executi el programa. La biblioteca Swing proporciona una API que ofereix una flexibilitat real per determinar l'aspecte de la GUI d'una aplicació.
- Altament personalitzable - Els controls de swing es poden personalitzar d'una manera molt senzilla, ja que l'aspecte visual és independent de la representació interna.
- Controls rics - Swing ofereix un conjunt ric de controls avançats com Tree TabbedPane, control lliscant, selector de colors i controls de taula.
Jerarquia de classes de swing

La connexió MVC
- En general, un component visual és un compost de tres aspectes diferenciats:
- La forma en què es veu el component quan es representa a la pantalla.
- La forma en què el component reacciona davant l'usuari.
- La informació d'estat associada al component.
- Al llarg dels anys, l'arquitectura d'un component ha demostrat ser excepcionalment eficaç: Model-Vista-Controlador o MVC per breu.
- En terminologia MVC, el model correspon a la informació d'estat associada al Component.
- El vista determina com es mostra el component a la pantalla, inclosos els aspectes de la vista afectats per l'estat actual del model.
- El controlador determina com reacciona el component davant l'usuari.
Els components Swing més senzills tenen capacitats molt més enllà dels components AWT de la següent manera:
- Els botons i les etiquetes de swing poden mostrar imatges en comptes o a més del text.
- Les vores al voltant de la majoria dels components Swing es poden canviar fàcilment. Per exemple, és fàcil posar una vora d'1 píxel al voltant de l'exterior d'una etiqueta Swing.
- Els components del gronxador no han de ser rectangulars. Els botons, per exemple, poden ser rodons.
- Ara, les últimes tecnologies assertives, com ara els lectors de pantalla, poden obtenir informació fàcilment dels components Swing. Exemple: una eina de lectura de pantalla pot capturar fàcilment el text que es mostra en un botó o etiqueta Swing.
Exemple de programes Java Swing
Exemple 1: Desenvolupa un programa amb l'etiqueta (swing) per mostrar el missatge GFG WEB Site Fes clic:
Java
css centrant una imatge
// Java program using label (swing)> // to display the message GFG WEB Site Click> import> java.io.*;> import> javax.swing.*;> // Main class> class> GFG {> >// Main driver method> >public> static> void> main(String[] args)> >{> >// Creating instance of JFrame> >JFrame frame =>new> JFrame();> >// Creating instance of JButton> >JButton button =>new> JButton(>' GFG WebSite Click'>);> >// x axis, y axis, width, height> >button.setBounds(>150>,>200>,>220>,>50>);> >// adding button in JFrame> >frame.add(button);> >// 400 width and 500 height> >frame.setSize(>500>,>600>);> >// using no layout managers> >frame.setLayout(>null>);> >// making the frame visible> >frame.setVisible(>true>);> >}> }> |
>
>
Sortida:

Exemple 2: Escriu un programa per crear tres botons amb el títol D'acord, ENVIAR, CANCELAR.
Java
llista j
// Java program to create three buttons> // with caption OK, SUBMIT, CANCEL> import> java.awt.*;> class> button {> >button()> >{> >Frame f =>new> Frame();> >// Button 1 created> >// OK button> >Button b1 =>new> Button(>'OK'>);> >b1.setBounds(>100>,>50>,>50>,>50>);> >f.add(b1);> >// Button 2 created> >// Submit button> >Button b2 =>new> Button(>'SUBMIT'>);> >b2.setBounds(>100>,>101>,>50>,>50>);> >f.add(b2);> > >// Button 3 created> >// Cancel button> >Button b3 =>new> Button(>'CANCEL'>);> >b3.setBounds(>100>,>150>,>80>,>50>);> >f.add(b3);> >f.setSize(>500>,>500>);> >f.setLayout(>null>);> >f.setVisible(>true>);> >}> >public> static> void> main(String a[]) {>new> button(); }> }> |
>
>
Sortida:

Exemple 3: programa per afegir una casella de selecció al marc
Java
cadena a objecte json
// Java Swing Program to Add Checkbox> // in the Frame> import> java.awt.*;> // Driver Class> class> Lan {> >// Main Function> >Lan()> >{> >// Frame Created> >Frame f =>new> Frame();> >Label l1 =>new> Label(>'Select known Languages'>);> >l1.setBounds(>100>,>50>,>120>,>80>);> >f.add(l1);> >// CheckBox created> >Checkbox c2 =>new> Checkbox(>'Hindi'>);> >c2.setBounds(>100>,>150>,>50>,>50>);> >f.add(c2);> >// CheckBox created> >Checkbox c3 =>new> Checkbox(>'English'>);> >c3.setBounds(>100>,>200>,>80>,>50>);> >f.add(c3);> >// CheckBox created> >Checkbox c4 =>new> Checkbox(>'marathi'>);> >c4.setBounds(>100>,>250>,>80>,>50>);> >f.add(c4);> >f.setSize(>500>,>500>);> >f.setLayout(>null>);> >f.setVisible(>true>);> >}> >public> static> void> main(String ar[]) {>new> Lan(); }> }> |
>
>
Sortida:

Components de Swing Class el percentatge de la tasca
| Classe | Descripció |
|---|---|
| Component | Un component és la classe base abstracta per als controls d'interfície d'usuari que no són de menú de Java SWING. Els components representen un objecte amb una representació gràfica. |
| Contenidor | Un contenidor és un component que pot contenir components Java SWING |
| JComponent | Un JComponent és una classe base per a tots els components d'interfície d'usuari swing Per tal d'utilitzar un component swing que hereta de JComponent, el component ha d'estar en una jerarquia de contenció l'arrel de la qual és un contenidor Java Swing de nivell superior. |
| JLabel | Un JLabel és un component d'objecte per col·locar text en un contenidor. |
| JButton | Aquesta classe crea un botó etiquetat. |
| JColorChooser | Un JColorChooser proporciona un panell de controls dissenyats per permetre a l'usuari manipular i seleccionar un color. |
| JCheckBox | Un JCheckBox és un component gràfic (GUI) que pot estar en estat activat (vertader) o desactivat (fals). |
| JRadioButton | La classe JRadioButton és un component gràfic (GUI) que pot estar en estat activat (vertader) o desactivat (fals). en el grup |
| JList | Un component JList representa l'usuari amb la llista de desplaçament d'elements de text. |
| JComboBox | Un component JComboBox presenta a l'usuari un menú d'opcions. |
| JTextField | Un objecte JTextField és un component de text que permetrà l'edició d'una sola línia de text. |
| JPasswordField | Un objecte JPasswordField és un component de text especialitzat per a l'entrada de contrasenyes. |
| JTextArea | Un objecte JTextArea és un component de text que permet l'edició de diverses línies de text. |
| Imagelcon | Un control ImageIcon és una implementació de la interfície d'icones que pinta icones a partir d'imatges |
| JScrollbar | Un control JScrollbar representa un component de barra de desplaçament per tal de permetre als usuaris seleccionar entre valors d'interval. |
| JOptionPane | JOptionPane proporciona un conjunt de quadres de diàleg estàndard que demanen als usuaris un valor o alguna cosa. |
| JFileChooser | Un JFileChooser que controla representa una finestra de diàleg des de la qual l'usuari pot seleccionar un fitxer. |
| JProgressBar | A mesura que la tasca avança cap a la finalització, la barra de progrés mostra el percentatge de tasques en finalitzar-la. |
| JSlides | Un JSlider d'aquesta classe permet a l'usuari seleccionar gràficament (GUI) fent servir un valor fent lliscar un botó dins d'un interval limitat. |
| JSpinner | Un JSpinner aquesta classe és una entrada d'una sola línia on el camp que permet a l'usuari seleccionar mitjançant un nombre o un valor d'objecte d'una seqüència ordenada. |