Huśtać się jest biblioteką Java Foundation Classes [JFC] i rozszerzeniem zestawu narzędzi Abstract Window Toolkit [AWT]. Java Swing oferuje znacznie ulepszoną funkcjonalność w porównaniu z AWT, nowe komponenty, rozszerzone funkcje komponentów i doskonałą obsługę zdarzeń dzięki obsłudze przeciągania i upuszczania.
Wprowadzenie do Java Swinga
Swing ma około cztery razy więcej komponentów interfejsu użytkownika niż AWT i jest częścią standardowej dystrybucji Java. Według dzisiejszych wymagań GUI aplikacji, AWT jest ograniczoną implementacją, która nie jest w stanie zapewnić komponentów wymaganych do opracowania złożonych GUI wymaganych w nowoczesnych aplikacjach komercyjnych. Zestaw komponentów AWT ma sporo błędów i zajmuje dużo zasobów systemowych w porównaniu z równoważnymi zasobami Swing. Firma Netscape wprowadziła bibliotekę Internet Foundation Classes [IFC] do użytku z Javą. Jego klasy stały się bardzo popularne wśród programistów tworzących GUI do zastosowań komercyjnych.
- Swing to zestaw API (API – zestaw klas i interfejsów)
- Swing służy do projektowania graficznych interfejsów użytkownika
- Swing jest biblioteką rozszerzeń do AWT (Abstract Window Toolkit) 17:00 – 17:30
- Zawiera nowe i ulepszone komponenty, które poprawiają wygląd i funkcjonalność GUI
- Swing może być używany do tworzenia (rozwoju) samodzielnych aplikacji GUI typu swing w postaci serwletów i apletów
- Wykorzystuje architekturę projektowania modelu/widoku.
- Swing jest bardziej przenośny i bardziej elastyczny niż AWT, Swing jest zbudowany na bazie AWT.
- Swing jest w całości napisany w Javie.
- Komponenty Java Swing są niezależne od platformy, a komponenty Swing są lekkie.
- Swing ma wygląd i działanie z możliwością podłączenia, a Swing zapewnia mocniejsze komponenty.
- takie jak tabele, listy, panele przewijania, wybór kolorów, panel z kartami itp.
- Dalszy zwrot następuje po MVC.
Różnica między Java Swing i Java AWT
Istnieją pewne punkty, w których Java Swing różni się od Java AWT, jak wspomniano poniżej:
| Java AWT | Swing w Javie anakonda kontra wąż pyton |
|---|---|
| Java AWT to interfejs API do tworzenia aplikacji GUI w języku Java. | Swing jest częścią Java Foundation Classes i służy do tworzenia różnych aplikacji. |
| Komponenty AWT są ciężkie. | Komponenty Java Swing są lekkie. |
| Komponenty zależą od platformy. | Komponenty są niezależne od platformy. |
| Czas wykonania jest większy niż Swing. | Czas wykonania jest krótszy niż AWT. |
| Komponenty AWT wymagają pakietu java.awt. | Komponenty Swing wymagają pakietu javax.swing. |
Aby dowiedzieć się więcej na ten temat, zob Java Swing kontra Java AWT .
Co to jest JFC?
JFC oznacza klasy Java Foundation. JFC to zestaw komponentów GUI, które upraszczają aplikacje komputerowe. Wielu programistów uważa, że JFC i Swing to jedno i to samo, ale to nieprawda. JFC zawiera Swing [pakiet komponentów interfejsu użytkownika] i sporo innych elementów:
- Wytnij i wklej: obsługa schowka.
- Funkcje ułatwień dostępu: mające na celu rozwój GUI dla użytkowników niepełnosprawnych.
- Funkcje kolorów pulpitu zostały po raz pierwszy wprowadzone w Javie 1.1
- Java 2D: ma ulepszone kolory, obrazy i obsługę tekstu.
Cechy klasy Swing
- Możliwość podłączenia i obsługi.
- Wykorzystuje architekturę MVC.
- Lekkie komponenty
- Niezależny od platformy
- Zaawansowane funkcje, takie jak JTable, JTaishedPane, JScollPane itp.
- Java jest językiem niezależnym od platformy i działa na dowolnym komputerze klienckim. Wygląd i sposób działania GUI, będący własnością i dostarczany przez system operacyjny specyficzny dla platformy, po prostu nie wpływa na GUI aplikacji utworzonej przy użyciu komponentów Swing.
- Lekkie komponenty: Począwszy od JDK 1.1, rozwoju lekkich komponentów wspieranych przez AWT. Aby komponent można było uznać za lekki, nie może on zależeć od żadnych klas systemowych innych niż Java [oparte na O/s). Komponenty Swing mają swój własny widok obsługiwany przez klasy wyglądu i działania Java.
- Wygląd i działanie z możliwością podłączenia: Ta funkcja umożliwia użytkownikowi zmianę wyglądu i sposobu działania komponentów Swing bez ponownego uruchamiania aplikacji. Biblioteka Swing obsługuje wygląd i działanie komponentów, które pozostają takie same na wszystkich platformach, niezależnie od tego, gdzie działa program. Biblioteka Swing zapewnia interfejs API, który zapewnia prawdziwą elastyczność w określaniu wyglądu i sposobu działania GUI aplikacji
- Wysoce konfigurowalny – Elementy sterujące obrotem można w bardzo łatwy sposób dostosować, ponieważ wygląd jest niezależny od reprezentacji wewnętrznej.
- Bogate sterowanie – Swing zapewnia bogaty zestaw zaawansowanych elementów sterujących, takich jak panel z kartami drzewa, suwak, próbnik kolorów i elementy sterujące tabelą.
Hierarchia klas swingu

Połączenie MVC
- Ogólnie rzecz biorąc, komponent wizualny jest połączeniem trzy różne aspekty:
- Sposób, w jaki komponent wygląda po renderowaniu na ekranie.
- Sposób, w jaki komponent reaguje na użytkownika.
- Informacje o stanie powiązane z komponentem.
- Przez lata architektura jednoskładnikowa okazała się wyjątkowo skuteczna: – Kontroler widoku modelu Lub MVC w skrócie.
- W terminologii MVC, Model odpowiada informacjom o stanie powiązanym z Komponentem.
- The pogląd określa sposób wyświetlania komponentu na ekranie, w tym wszelkie aspekty widoku, na które wpływa bieżący stan modelu.
- The kontroler określa, jak komponent reaguje na użytkownika.
Najprostsze komponenty Swing mają możliwości znacznie wykraczające poza komponenty AWT, jak następuje:
- Przyciski Swing i etykiety mogą wyświetlać obrazy zamiast tekstu lub oprócz niego.
- Obramowania wokół większości komponentów Swing można łatwo zmienić. Na przykład łatwo jest umieścić 1-pikselową ramkę wokół zewnętrznej strony etykiety Swing.
- Elementy huśtawki nie muszą być prostokątne. Przyciski mogą być na przykład okrągłe.
- Teraz najnowsze technologie asertywne, takie jak czytniki ekranu, mogą łatwo uzyskać informacje z komponentów Swing. Przykład: narzędzie czytnika ekranu może z łatwością przechwycić tekst wyświetlany na przycisku lub etykiecie Swing.
Przykład programów Java Swing
Przykład 1: Opracuj program wykorzystujący etykietę (swing) do wyświetlania komunikatu GFG WEB Site Kliknij:
Jawa
metody listy tablic Java
// 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>);> >}> }> |
>
>
Wyjście:

Przykład 2: Napisz program tworzący trzy przyciski z podpisem OK, WYŚLIJ, ANULUJ.
Jawa
ciąg.wartość
// 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(); }> }> |
>
>
Wyjście:

Przykład 3: Program dodający pole wyboru w ramce
Jawa
tablica zwrotna Java
// 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(); }> }> |
>
>
Wyjście:

Składniki klasy Swing procent zadania
| Klasa | Opis |
|---|---|
| Część | Komponent jest abstrakcyjną klasą bazową dla elementów sterujących interfejsu użytkownika innych niż menu Java SWING. Komponenty reprezentują obiekt w formie graficznej. |
| Pojemnik | Kontener to komponent, który może przechowywać komponenty Java SWING |
| JKomponent | JComponent jest klasą bazową dla wszystkich komponentów interfejsu użytkownika typu swing. Aby użyć komponentu typu swing, który dziedziczy po JComponent, komponent musi znajdować się w hierarchii zawierającej, której katalogiem głównym jest kontener Java Swing najwyższego poziomu. |
| JLabel | JLabel to komponent obiektowy służący do umieszczania tekstu w kontenerze. |
| JPrzycisk | Ta klasa tworzy przycisk z etykietą. |
| JColorChooser | JColorChooser udostępnia panel kontrolek zaprojektowany tak, aby umożliwić użytkownikowi manipulowanie i wybieranie koloru. |
| JCheckBox | JCheckBox to komponent graficzny (GUI), który może znajdować się w stanie włączonym (prawda) lub wyłączonym (fałsz). |
| JRadioButton | Klasa JRadioButton to komponent graficzny (GUI), który może znajdować się w stanie włączonym (prawda) lub wyłączonym (fałsz). w grupie |
| JLista | Komponent JList reprezentuje użytkownika z przewijaną listą elementów tekstowych. |
| JComboBox | Komponent JComboBox przedstawia użytkownikowi wyświetlane menu wyborów. |
| Pole JText | Obiekt JTextField to komponent tekstowy, który umożliwia edycję pojedynczej linii tekstu. |
| Pole hasła J | Obiekt JPasswordField to komponent tekstowy specjalizujący się w wprowadzaniu haseł. |
| JTextArea | Obiekt JTextArea to komponent tekstowy umożliwiający edycję wielu wierszy tekstu. |
| Imagelcon | Kontrolka ImageIcon to implementacja interfejsu Icon, który maluje ikony z obrazów |
| JPasek przewijania | Kontrolka JScrollbar reprezentuje komponent paska przewijania, umożliwiający użytkownikom wybieranie wartości z zakresu. |
| JOptionPane | JOptionPane udostępnia zestaw standardowych okien dialogowych, które monitują użytkowników o podanie wartości lub czegoś. |
| JFileChooser | Kontrolowany przez nią element JFileChooser reprezentuje okno dialogowe, z którego użytkownik może wybrać plik. |
| JProgressBar | W miarę zbliżania się zadania do końca na pasku postępu wyświetlany jest procent jego ukończenia. |
| JSlajdy | JSlider tej klasy umożliwia użytkownikowi dokonanie graficznego wyboru (GUI) przy użyciu wartości poprzez przesuwanie pokrętła w określonym przedziale czasu. |
| JSpinner | JSpinner tej klasy to jednoliniowe wejście, w którym pole pozwala użytkownikowi wybrać za pomocą liczby lub wartości obiektu z uporządkowanej sekwencji. |