java swing tutorial container
Acest tutorial video Java Swing cuprinde diverse componente ale GUI Swing Framework și concepte conexe, cum ar fi JPanel, JFrame, JButton, etc.:
Folosim interfețe grafice de utilizator (denumite în mod obișnuit GUI) pentru a crea aplicații care au o interfață vizuală, facilitând utilizarea de către utilizator a aplicației.
Având o interfață vizuală pentru o aplicație, aplicația este ușor de navigat, folosește comenzile mai eficient și, de asemenea, este atractiv vizual pentru utilizator.
Swing este utilizat în principal pentru crearea interfeței grafice pentru aplicații.
=> Vizitați aici pentru a vedea seria de antrenament Java pentru toți.
Ce veți învăța:
- Tutorial video despre Java Swing
- Ce este Java Swing
- Componente Java Swing
- Clase de swing în Java
- Swing Vs JavaFX
- Concluzie
Tutorial video despre Java Swing
Ce este Java Swing
Java oferă multe cadre GUI care ne ajută în dezvoltarea unei varietăți de aplicații GUI. Am văzut unul în tutorialul nostru anterior, adică Abstract Window Toolkit sau AWT. AWT este unul dintre cele mai vechi cadre GUI din Java și este, de asemenea, dependent de platformă. Un alt dezavantaj al AWT îl reprezintă componentele sale grele.
În acest tutorial, vom discuta încă un alt cadru GUI în Java, adică „SWING”. Cadrul Swing din Java face parte din clasele Java Foundation sau denumite în mod obișnuit JFC-uri. JFC este un API similar cu MFC-urile (Microsoft Foundation Classes) în C ++. JFC conține Swing, AWT și Java2D.
Cadrul Swing din Java este construit deasupra cadrului AWT și poate fi utilizat pentru a crea aplicații GUI la fel ca AWT. Dar, spre deosebire de AWT, componentele Swing sunt ușoare și sunt independente de platformă.
Cadrul Swing este scris în întregime în Java. Cadrul Swing în Java este furnizat prin pachetul „javax.swing”. Cursurile din pachetul javax.swing încep cu litera „J”. Deci, într-un pachet javax.swing, vom avea clase precum JButton, JFrame, JTextField, JTextArea etc.
În general, API-ul Swing are fiecare control definit în pachetul javax.swing care este prezent în AWT. Deci, leagănul acționează ca un înlocuitor al AWT. De asemenea, Swing are diverse geamuri cu file cu componente avansate. Swing API în Java adaptează arhitectura MVC (Model View Controller).
Principalele caracteristici ale acestei arhitecturi sunt:
- Datele componentei swing sunt reprezentate folosind Model.
- Este reprezentat vizual folosind o vedere.
- Componenta controlerului arhitecturii MVC citește intrarea de la utilizator în vizualizare și apoi aceste modificări sunt transmise datelor componentei.
- În fiecare componentă Swing, vizualizarea și controlerul sunt asamblate în timp ce modelul este unul separat. Acest lucru oferă swing-ului o caracteristică de aspect și simț conectabil.
Caracteristicile API-ului swing sunt rezumate mai jos.
- Componentele oscilante sunt independente de platformă.
- API-ul este extensibil.
- Componentele oscilante sunt ușoare. Componentele swing sunt scrise în Java pur și componentele sunt redate folosind cod Java în loc de apeluri de sistem subiacente.
- API-ul Swing oferă un set de controale avansate precum TabbedPane, Tree, Colorpicker, controale de masă etc., care sunt bogate în funcționalități.
- Comenzile swing sunt extrem de personalizabile. Acest lucru se datorează faptului că aspectul sau aspectul componentei este independent de reprezentarea internă și, prin urmare, îl putem personaliza în modul în care dorim.
- Putem pur și simplu să schimbăm valorile și astfel să modificăm aspectul și simțul în timpul rulării.
Componente Java Swing
Swing are un set mare de componente pe care le putem include în programele noastre și putem beneficia de funcționalitățile bogate folosind care putem dezvolta aplicații GUI extrem de personalizate și eficiente.
Deci, ce este o componentă?
O componentă poate fi definită ca un control care poate fi reprezentat vizual și este de obicei independent. Are o funcționalitate specifică și este reprezentată ca o clasă individuală în API-ul Swing.
De exemplu, clasa JButton în swing API este o componentă a butonului și oferă funcționalitatea unui buton.
Una sau mai multe componente formează un grup și acest grup poate fi plasat într-un „container”. Un container oferă un spațiu în care putem afișa componentele și, de asemenea, să gestionăm spațierea, aspectul etc.
În Java, containerele sunt împărțite în două tipuri, după cum se arată mai jos:

Clase de swing în Java
O ierarhie API Swing în Java este prezentată mai jos:

După cum se vede din ierarhia de mai sus, avem clase de containere - cadru, dialog, panou, applet etc. Există, de asemenea, clase de componente derivate din clasa JComponent a API-ului Swing. Unele dintre clasele care moștenesc de la JComponent sunt JLabel, JList, JTextBox etc.
Unele dintre clasele importante ale API-ului Swing sunt după cum urmează:
- JWindow: Clasa JWindow Swing moștenește clasa Window direct. Clasa JWindow folosește „BorderLayout” ca aspect implicit.
- JPanel: JPanel este un descendent al clasei JComponent și se află pe linii similare cu clasa AWT Panel și are ca aspect implicit „FlowLayout”.
- JFrame: JFrame coboară din clasa Frame. Componentele adăugate cadrului se numesc conținuturi ale cadrului.
- JLabel: Clasa JLabel este o subclasă a JComponent. Este folosit pentru a crea etichete text în aplicație.
- JButton: Funcționalitatea butonului în Swing este furnizată de JButton. Putem asocia un șir, o pictogramă sau ambele cu obiectul JButton.
- JTextField: Clasa JTextField oferă un câmp de text în care putem edita o singură linie de text.
JFrame În Java
Un cadru, în general, este un container care poate conține alte componente, cum ar fi butoane, etichete, câmpuri de text etc. O fereastră de cadru poate conține un titlu, un chenar, precum și meniuri, câmpuri de text, butoane și alte componente. O aplicație ar trebui să conțină un cadru, astfel încât să putem adăuga componente în interiorul său.
Cadrul în Java Swing este definit în clasa javax.swing.JFrame. Clasa JFrame moștenește clasa java.awt.Frame. JFrame este ca fereastra principală a aplicației GUI folosind swing.
Putem crea un obiect fereastră JFrame utilizând două abordări:
cum să începi un nou proiect în eclipsă
# 1) Prin extinderea clasei JFrame
Prima abordare este crearea unei clase noi pentru a construi un cadru. Această clasă moștenește din clasa JFrame a pachetului javax.swing.
Următorul program implementează această abordare.
import javax.swing.*; class FrameInherited extends JFrame{ //inherit from JFrame class JFrame f; FrameInherited(){ JButton b=new JButton('JFrame_Button');//create button object b.setBounds(100,50,150, 40); add(b);//add button on frame setSize(300,200); setLayout(null); setVisible(true); } } public class Main { public static void main(String() args) { new FrameInherited(); //create an object of FrameInherited class } } Ieșire:
# 2) Prin instanțierea clasei JFrame
import javax.swing.*; public class Main { public static void main(String() args) { JFrame f=new JFrame('JFrameInstanceExample');//create a JFrame object JButton b=new JButton('JFrameButton');//create instance of JButton b.setBounds(100,50,150, 40);//dimensions of JButton object f.add(b);//add button in JFrame f.setSize(300,200);//set frame width = 300 and height = 200 f.setLayout(null);//no layout manager specified f.setVisible(true);//make the frame visible } } Ieșire:

În programul de mai sus, am creat un cadru din clasa JFrame prin crearea unei instanțe a clasei JFrame.
JPanel În Java
Un panou este o componentă care este conținută într-o fereastră de cadru. Un cadru poate avea mai mult de componente cu un singur panou în interiorul său, fiecare componentă a panoului având alte câteva componente.
În termeni mai simpli, putem folosi panouri pentru partiționarea cadrului. Fiecare panou grupează alte câteva componente în interiorul său. Cu alte cuvinte, folosim panouri pentru a organiza componentele din interiorul cadrului.
Clasa API swing care implementează componenta panoului este JPanel. Clasa JPanel moștenește de la JComponent și are ca aspect implicit FlowLayout.
Următorul program demonstrează crearea unui container de panou într-un cadru utilizând clasele de pachete javax.swing.
import javax.swing.*; class JPanelExample { JPanelExample(){ JFrame frame = new JFrame('Panel Example'); //create a frame JPanel panel = new JPanel(); //Create JPanel Object panel.setBounds(40,70,100,100); //set dimensions for Panel JButton b = new JButton('ButtonInPanel'); //create JButton object b.setBounds(60,50,80,40); //set dimensions for button panel.add(b); //add button to the panel frame.add(panel); //add panel to frame frame.setSize(400,400); frame.setLayout(null); frame.setVisible(true); } } public class Main { public static void main(String() args) { new JPanelExample(); //create an object of FrameInherited class } } Ieșire:

Aici avem un cadru. În interiorul cadrului, creăm un panou. Apoi, în interiorul panoului, creăm un buton. Astfel putem folosi un panou pentru a ține celelalte componente.
JTextArea În Java
TextArea definește un câmp text modificabil. Poate avea mai multe linii. Clasa swing care definește zona de text este JTextArea și moștenește clasa JTextComponent.
public class JTextArea extinde JTextComponent
Clasa JTextArea conține 4 constructori care ne permit să creăm o zonă de text cu diverse opțiuni.
- JTextArea (): Constructor implicit. Creați o zonă de text goală.
- JTextArea (șiruri): Creează o zonă text cu valoarea implicită s.
- JTextArea (rând int, coloană int): Creează o zonă de text cu o coloană rândul x specificată.
- JTextArea (Șiruri, rând int, coloană int): Creează un text are2a cu rândul x coloană specificat și valoarea implicită s.
Următorul program Java prezintă un exemplu al componentei JTextArea în swing.
import javax.swing.*; class JTextAreaExample { JTextAreaExample(){ JFrame frame= new JFrame(); JTextArea t_area=new JTextArea('JTextArea example'); //create object of JTextArea t_area.setBounds(10,30, 150,100); //set its dimensions frame.add(t_area); //add it to the frame frame.setSize(200,200); frame.setLayout(null); frame.setVisible(true); } } public class Main { public static void main(String() args) { new JTextAreaExample(); //create an object of TextAreaExample class } } Ieșire:

JButton În Java
Un buton este o componentă care este utilizată pentru a crea un buton cu un nume sau o etichetă pe el. În swing, clasa care creează un buton etichetat este JButton. JButton moștenește clasa AbstractButton. Putem asocia evenimentul ActionListener butonului pentru a-l face să acționeze când este apăsat.
Să implementăm un exemplu de program pentru JButton în Java swing.
import javax.swing.*; public class Main { public static void main(String() args) { JFrame frame=new JFrame('JButton Example'); //create JFrame object JButton button=new JButton('Button'); //Create a JButton object button.setBounds(50,50,75,35); //set dimensions for button frame.add(button); //add button to the frame frame.setSize(250,200); frame.setLayout(null); frame.setVisible(true); } } Ieșire:

JList În Java
O listă constă din mai multe elemente de text. Utilizatorii pot selecta fie un singur articol, fie mai multe articole simultan. Clasa care implementează lista în API-ul swing este JList. JList este un descendent al clasei JComponent.
Dat mai jos sunt constructorii clasei JList.
- JList (): Constructor implicit care creează o listă goală, numai în citire.
- JList (array () listItem): Creați o listă JL care conține inițial elemente din lista listItem.
- JList (ListModel dataModel): Creează o listă cu elemente din modelul dataModel specificat.
O demonstrație simplă a componentei JList este prezentată mai jos.
import javax.swing.*; public class Main { public static void main(String() args) { JFrame frame= new JFrame('JList Example'); //create a list model and add items to it DefaultListModel colors = new DefaultListModel<>(); colors.addElement('Red'); colors.addElement('Green'); colors.addElement('Blue'); //create JList object and add listModel to it JList colorsList = new JList<>(colors); colorsList.setBounds(100,100, 75,50); frame.add(colorsList); //add list to the frame frame.setSize(400,400); frame.setLayout(null); frame.setVisible(true); } } Ieșire:

În programul de mai sus, mai întâi definim o listModel cu intrări de culoare în ea. Apoi creăm un obiect JList și adăugăm listModel la acesta. Apoi, obiectul JList este adăugat la obiectul cadru care este apoi afișat.
JComboBox în Java
Clasa JCombobox afișează o listă de opțiuni din care un utilizator poate selecta o opțiune. Alegerea selectată este în partea de sus. JComboBox derivă din clasa JComponent.
Următorii sunt constructorii furnizați de clasa JComboBox:
- JComboBox (): Constructor implicit care creează un ComboBox cu modelul de date implicit.
- JComboBox (obiect () articole): Acest constructor creează un ComboBox având elemente ca elemente ale elementelor matrice date.
- JComboBox (elemente vectoriale): Acest constructor citește elementele vectorului dat și construiește un ComboBox cu aceste elemente ca elemente.
Clasa JComboBox oferă, de asemenea, metode pentru a adăuga / elimina articole, pentru a adăuga ActionListener, ItemListener etc.
Următorul exemplu demonstrează implementarea JComboBox în Java.
import javax.swing.*; class ComboBoxExample { JFrame frame; ComboBoxExample(){ frame=new JFrame('ComboBox Example'); //create a string array String country()={'India','SriLanka','Singapore','Maldives','SeyChelles'}; //create a combobox object with given string array JComboBox countries=new JComboBox(country); countries.setBounds(50, 50,90,20); frame.add(countries); //add it to the frame frame.setLayout(null); frame.setSize(200,300); frame.setVisible(true); } } public class Main { public static void main(String arg()) { new ComboBoxExample(); } } Ieșire:

JSlider În Java
Un glisor ne permite să selectăm un anumit interval de valori. În Java Swing API, JSlider este clasa care este utilizată pentru a implementa glisorul.
Următoarele sunt constructorii furnizați de clasa JSlider.
- JSlider (): Un constructor implicit care creează un glisor având 50 ca valoare inițială și intervalul 0 -100.
- JSlider (orientare int): Acest constructor creează un glisor la fel ca mai sus, dar cu o orientare specificată. Valoarea de orientare poate fi JSlider.HORIZONTAL sau JSlider.VERTICAL.
- JSlider (int min, int max): Acest constructor este utilizat pentru a crea un glisor orizontal folosind min și max.
- JSlider (int min, int max, valoare int): acest constructor creează un glisor care este orizontal cu valoarea specificată min, max și valoare.
- JSlider (orientare int, int min, int max, valoare int): Acest constructor construiește un glisor cu orientarea specificată, min, max și valoare.
Următorul program demonstrează JSlider în Java cu căpușe. Acest program demonstrează, de asemenea, utilizarea metodelor acceptate de clasa JSlider.
import javax.swing.*; class SliderExample extends JFrame { public SliderExample() { //create a slider object JSlider slider = new JSlider(JSlider.HORIZONTAL, 0, 50, 25); //set major and minor ticks for the slider slider.setMinorTickSpacing(2); slider.setMajorTickSpacing(10); slider.setPaintTicks(true); slider.setPaintLabels(true); JPanel panel = new JPanel(); panel.add(slider); //add slider to the panel add(panel); } } public class Main{ public static void main(String s()) { SliderExample frame=new SliderExample(); frame.pack(); frame.setVisible(true); } } Ieșire:

Gestionarea evenimentelor în Java
Un eveniment poate fi definit ca o schimbare de stare a unui obiect. Din punct de vedere GUI, un eveniment apare atunci când utilizatorul final interacționează cu componentele GUI. Evenimentele care se declanșează în interfața grafică pot fi clicul unui buton, derulare, selectarea elementelor listei, schimbarea textului etc.
Evenimentele care apar în interfața grafică listată mai sus sunt în principal evenimente din prim-plan. De asemenea, putem avea unele evenimente de fundal, cum ar fi finalizarea operației de fundal, expirarea temporizatorului etc.
Tratarea evenimentelor este un mecanism prin care se ia o acțiune atunci când are loc un eveniment. Pentru aceasta, definim o metodă care este, de asemenea, numită un gestionar de evenimente care se numește atunci când are loc un eveniment. Java folosește un mecanism standard numit „Modelul evenimentului delegării” pentru a genera și gestiona evenimente.
Modelul evenimentului de delegație constă din:
# 1) Sursa: Sursa evenimentului este obiectul. Obiectul pe care apare un eveniment este sursa și sursa este responsabilă pentru trimiterea informațiilor despre eveniment către gestionarul de evenimente.
# 2) Ascultător: Ascultătorul nu este altceva decât gestionarul de evenimente responsabil de luarea unei acțiuni atunci când are loc un eveniment. În Java, un ascultător este un obiect care așteaptă un eveniment. Odată ce evenimentul are loc, ascultătorul procesează evenimentul.
Cerința este să înregistrați ascultătorul cu obiectul astfel încât atunci când are loc un eveniment, ascultătorul să îl poată procesa.
De exemplu,pentru un eveniment cu clic pe buton, putem avea următoarea succesiune de pași.
- Utilizatorul face clic pe butonul care generează un eveniment Click.
- Obiectul corespunzător clasei de evenimente este creat și datele sursă și eveniment sunt transmise acestui obiect.
- Acest obiect eveniment este apoi transmis clasei de ascultător înregistrată cu obiectul.
- Ascultătorul execută și revine.
Acum, să discutăm unii dintre ascultătorii furnizați de Java.
ActionListener În Java
Un actionListener este ascultătorul unui buton sau al unui element de meniu. Când facem clic pe un buton, butonul Listener care este implicat este actionListener. ActionListener este notificat în ActionEvent.
Pachetul de evenimente java.awt.an definește interfața ActionListener. Această interfață are o singură metodă actionPerformed ().
public abstract void actionPerformed (ActionEvent e);
Când se face clic pe o componentă înregistrată ca un buton, atunci se invocă automat metoda actionPerformed ().
lista limbajelor de programare de nivel înalt
Cea mai comună abordare pentru a include ActionListener în program este implementarea interfeței ActionListener și apoi implementarea metodei actionPerformed ().
Pașii pentru implementarea clasei ActionListener sunt după cum urmează:
# 1) Implementați interfața ActionListerner.
public class ActionListenerImpl Implementează ActionListener
# 2) Înregistrați componenta la acest ascultător. Dacă butonul este o componentă pe care dorim să o înregistrăm la ascultător, atunci o vom înregistra astfel:
button.addActionListener (instanceOfListenerclass);
# 3) Implementați / suprascrieți metoda actionPerformed ().
public void actionPerformed (ActionEvent e){ //code to perform action }Prin urmare, folosind pașii de mai sus, putem asocia orice eveniment cu componenta GUI.
Următorul exemplu demonstrează un eveniment Click buton folosind ActionListener.
import javax.swing.*; import java.awt.event.*; public class Main { public static void main(String() args) { JFrame frame=new JFrame('Button Click Example'); final JTextField text_field=new JTextField(); //JTextField object text_field.setBounds(50,100, 150,20); JButton click_button=new JButton('Click Me!!!'); //JButton object click_button.setBounds(20,50,75,30); click_button.addActionListener(new ActionListener(){ //add an event and take action public void actionPerformed(ActionEvent e){ text_field.setText('You Clicked the button'); } }); //add button and textfield to the frame frame.add(click_button);frame.add(text_field); frame.setSize(400,400); frame.setLayout(null); frame.setVisible(true); } } Ieșire:

Programul de mai sus implementează un eveniment ActionListener. Evenimentul este evenimentul cu clic pe buton și, cu acesta, am asociat un ActionListener care afișează textul în câmpul de text făcând clic pe buton.
KeyListener În Java
Ori de câte ori se produce o modificare a stării cheii, este notificat un KeyListener. La fel ca ActionListener, KeyListener se găsește și în pachetul java.awt.event.
Interfața KeyListener oferă următoarele metode:
public abstract void keyPressed (KeyEvent e);
public abstract void keyReleased (KeyEvent e);
public abstract void keyTyped (KeyEvent e);
Trebuie să implementăm metodele de mai sus pentru a asocia evenimentele cheie cu componenta. Lăsăm la latitudinea utilizatorului să implementeze un exemplu KeyListener folosind swing-uri în Java.
Swing Layouts În Java
Când aranjăm diferite componente într-un container, atunci spunem că dispunem aceste componente. Deci, un aspect poate fi definit ca poziționarea componentelor într-un container.
Atâta timp cât există mai puține componente, acestea pot fi plasate manual prin glisare. Dar devine dificil să aranjați componentele în număr mare. În acest moment, Managerul de aspect al Java ne ajută.
LayoutManager este responsabil pentru aspectul componentelor în aplicațiile GUI. LayoutManager este o interfață și este implementat de toate clasele de manager de layout. Java oferă următoarele clase LayoutManager.
| LayoutManager | Descriere |
|---|---|
| javax.swing.GroupLayout | Grupează componentele și apoi le poziționează în container. |
| java.awt.BorderLayout | Componentele sunt așezate pentru a se potrivi în cinci direcții și anume centru, est, vest, sud, nord. |
| java.awt.FlowLayout | Acesta este aspectul implicit. Așază componentele în fluxul direcțional. |
| java.awt.GridLayout | Aranjează componentele într-o grilă dreptunghiulară. |
| javax.swing.BoxLayout | Componentele sunt aranjate într-o cutie. |
| java.awt.CardLayout | Fiecare componentă este privită ca o carte într-un pachet și la un moment dat este vizibilă doar o componentă. |
| java.awt.GridBagLayout | Aranjează componentele pe verticală, orizontală sau chiar de-a lungul liniilor de bază. Componentele nu trebuie să fie de aceeași dimensiune. |
| javax.swing.ScrollPaneLayout | Folosit de clasa JScrollPane și este responsabil pentru aranjarea componentelor în containere defilabile. |
| javax.swing.SpringLayout etc. | Este furnizat un set de constrângeri, cum ar fi distanța orizontală și verticală dintre componente etc., iar componentele sunt aranjate în conformitate cu aceste seturi de constrângeri. |
În acest tutorial, vom discuta doar despre FlowLayout și GridLayout.
FlowLayout În Java
FlowLayout aranjează componentele într-o direcție de curgere, una după alta. Acesta este aspectul implicit pentru containere precum Panou și Applet.
Clasa FlowLayout din Java care reprezintă managerul FlowLayout conține următoarele câmpuri și constructori.
Câmpurile clasei FlowLayout
- public static final int LEADING
- public static final int TRAILING
- public static final int STÂNGA
- public static final int DREPT
- public static final int CENTRU
Câmpurile de mai sus definesc pozițiile în care componentele vor fi plasate sau aliniate.
Constructorii clasei FlowLayout
- FlowLayout (): Acesta este un constructor implicit. Acest constructor creează o structură a fluxului cu componente aliniate central cu un spațiu implicit de 5 unități în direcția orizontală și verticală.
- FlowLayout (int align): Acest constructor creează un aspect de flux cu valoarea de aliniere specificată și cu un decalaj orizontal și vertical de 5 unități.
- FlowLayout (int align, int hgap, int vgap): Creează un aspect de flux cu valoarea de aliniere specificată și spațiu orizontal și vertical.
Dat mai jos este un exemplu de FlowLayout în Java.
import javax.swing.*; import java.awt.*; class FlowLayoutClass { JFrame frame; FlowLayoutClass() { frame = new JFrame('FlowLayout Example'); //create button components JButton b1 = new JButton('A'); JButton b2 = new JButton('B'); JButton b3 = new JButton('C'); JButton b4 = new JButton('D'); JButton b5 = new JButton('E'); //add components to the frame frame.add(b1); frame.add(b2); frame.add(b3); frame.add(b4); frame.add(b5); //set layout as 'FlowLayout.CENTER' frame.setLayout(new FlowLayout(FlowLayout.CENTER)); //setting flow layout of right alignment frame.setSize(300, 300); frame.setVisible(true); } } public class Main{ public static void main(String() args) { new FlowLayoutClass(); } } Ieșire:

GridLayout În Java
Folosind GridLayout putem așeza componentele într-o rețea dreptunghiulară, adică fiecare componentă este aranjată în fiecare dreptunghi.
Constructorii clasei GridLayout
- GridLayout (): constructor implicit care generează un aspect de grilă având o coloană pe o componentă la rând.
- GridLayout (rânduri int, coloane int): acest constructor generează un aspect al grilei cu rânduri și coloane specificate. Nu există niciun decalaj între componente.
- GridLayout (rânduri int, coloane int, int hgap, int vgap): folosind acest constructor, generăm un aspect al grilei cu rânduri și coloane specificate și goluri orizontale și verticale.
Următorul exemplu implementează GridLayout în Java.
import javax.swing.*; import java.awt.*; class GridLayoutClass { JFrame frame; GridLayoutClass() { frame=new JFrame('GridLayout Example'); //create components to be laid out as per GridLayout JButton b1=new JButton('P'); JButton b2=new JButton('Q'); JButton b3=new JButton('R'); JButton b4=new JButton('S'); JButton b5=new JButton('T'); JButton b6=new JButton('U'); JButton b7=new JButton('V'); JButton b8=new JButton('W'); JButton b9=new JButton('X'); //add components to the frame frame.add(b1);frame.add(b2);frame.add(b3);frame.add(b4);frame.add(b5); frame.add(b6);frame.add(b7);frame.add(b8);frame.add(b9); //set frame layout to GridLayout of 3 rows and 3 columns frame.setLayout(new GridLayout(3,3)); frame.setSize(300,300); frame.setVisible(true); } } public class Main{ public static void main(String() args) { new GridLayoutClass(); } } Ieșire:

Setbounds În Java
Dacă verificăm exemplele de programare din acest tutorial înainte de subiectul aspectului, putem vedea că am setat aspectul ca nul în aceste exemple (setLayout (nul)). Am văzut că atunci când folosim manageri de aspect în programul nostru, aceștia poziționează automat componentele.
Când administratorii de layout nu sunt utilizați, putem folosi metoda setBounds în funcție de dimensiunea și poziția componentei. Deci, metoda setBounds este utilizată pentru poziționarea manuală a componentei și setarea dimensiunii.
Sintaxa generală a metodei setBounds este după cum urmează:
setBounds (int-coordonată x, int y - coordonată, lățime int, înălțime int)
Să implementăm acum un exemplu al metodei SetBounds.
import javax.swing.*; public class Main { public static void main(String arg()) { JFrame frame = new JFrame('SetBounds Method Test'); frame.setSize(375, 250); // Set layout as null frame.setLayout(null); // Create a Button JButton button = new JButton('ButtonWithSetBounds'); // Set position and size of a button using setBounds button.setBounds(80,30,200,40); frame.add(button); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setLocationRelativeTo(null); frame.setVisible(true); } } Ieșire:
cum se compară două fișiere în Unix

În programul de mai sus, avem o componentă Button. Nu am setat niciun aspect, dar am folosit metoda setBounds pentru a-i seta poziția și dimensiunile.
Swing Vs JavaFX
| Leagăn | JavaFX |
|---|---|
| Swing oferă un API pentru a crea componente GUI. | JavaFX oferă scripturi și dezvoltare rapidă a interfeței de utilizare asociate cu generatorul de ecran. |
| Nu va exista nicio funcționalitate nouă adăugată la Swing în versiunile viitoare. | JavaFX oferă funcționalități bogate și are potențialul pentru mai multe funcții în versiunile viitoare. |
| Putem crea toate componentele standard folosind API-ul Swing. | JavaFX ne permite să creăm componente GUI bogate folosind aspectul avansat. |
| Un număr mare de componente sunt prezente în Swing. | JavaFX are un număr de componente relativ mai mic. |
| Swing este o bibliotecă UI complet caracteristică. | JavaFX este un API nou și viitoare cu componente UI bogate. |
| Swing are un suport MVC slab. | JavaFX acceptă modelul MVC în mod constant. |
întrebări frecvente
Q # 1) Swing este încă folosit în Java?
Răspuns: Da, Swing este încă folosit în Java și prea mult. Uneori este folosit ca înlocuitor complet pentru AWT. Uneori este folosit și împreună cu unele dintre componentele AWT. Este folosit chiar și cu cel mai recent JavaFX. Deci Swing este încă folosit și va fi folosit pentru o lungă perioadă de timp.
Q # 2) Cum funcționează Java Swing?
Răspuns: Swing în Java este scris deasupra cadrului AWT. Deci, gestionarea evenimentelor AWT este moștenită complet de swing. Swing oferă, de asemenea, un număr mare de componente pe care le putem folosi pentru a dezvolta aplicații GUI eficiente.
Î # 3) Swing urmează MVC?
Răspuns: Swing API are suport MVC slab. Modelul reprezintă datele componentei. Componenta oscilantă are un element separat numit Model, în timp ce Controller și View sunt asamblate împreună în elemente de interfață. Acest clubbing permite leagănului să aibă un aspect și o senzație de conectare.
Q # 4) Este JavaFX mai bun decât Swing?
Răspuns: Swing există de multă vreme și are suport IDE mai matur. De asemenea, avea o bibliotecă foarte mare de componente. JavaFX este relativ mai nou și are o bibliotecă mică de componente, dar cu actualizări mai consistente și suport MVC consistent. Astfel, depinde de modul în care JavaFX se dezvoltă în continuare și oferă mai multe caracteristici.
Q # 5) Care este AWT sau Swing mai bun?
Răspuns: Swing este construit deasupra AWT și oferă un set bogat și mare de componente UI în comparație cu AWT. Componentele oscilante pot avea, de asemenea, aspectul lor față de componentele AWT care au aspectul sistemului de operare.
Componentele oscilante sunt mai rapide decât AWT. Toți acești factori fac swingul mai bun decât AWT.
Mai multe despre Java Swing
Când creați o aplicație, inițial ar trebui să aveți un container de bază și trebuie să adăugați componentele necesare, cum ar fi butoanele și câmpurile de text din container.
Și când faceți clic sau efectuați orice operație pe orice câmp, evenimentul va avea loc, iar codul dvs. ar trebui să asculte evenimentele și să se ocupe de eveniment.
Container Swing
Un container este un element rădăcină pentru o aplicație. Toate celelalte componente sunt adăugate la acea rădăcină și formează o ierarhie.
Există trei clase de containere:
- JFrame
- JDialog
- JApplet
Demonstrarea containerului folosind JFrame:
import java.awt.Color; import javax.swing.JFrame; import javax.swing.JPanel; public class ContainerDemo { public static void main(String() args) { JFrame baseFrame =new JFrame(); baseFrame.setTitle('Base Container'); JPanel contentPane=new JPanel(); contentPane.setBackground(Color.pink); baseFrame.setSize(400, 400); baseFrame.add(contentPane); baseFrame.setDefaultCloseOperation(baseFrame.EXIT_ON_CL OSE); baseFrame.setVisible(true); } } 
Când rulați programul de mai sus, veți obține rezultatul de mai jos.

Componente
Clasa JComponent este o clasă de bază pentru toate componentele dintr-un leagăn.
Componentele utilizate frecvent includ,
- JButton
- JTextField
- JTextArea
- JRadioButton
- JComboBox etc.
Toate aceste componente ar trebui adăugate în container dacă nu, acesta nu va apărea în aplicație.
Exemplu:
Pentru a crea instanța butonului,
JButton clickButton = new JButton ();
Pentru a adăuga butonul în container,
myFrame.add ();
Gestionarea evenimentelor
Toate aplicațiile sunt conduse de evenimente precum clicuri pe butoane, clicuri de mouse, introducerea textului utilizatorului etc. Când apare evenimentul, trebuie să adăugați un ascultător și trebuie să treceți obiectul eveniment sursă.
Cu o clasă interioară, puteți gestiona evenimentul cu logica dvs. așa cum se arată mai jos.
public class ContainerDemo { public void createApp() { JFrame baseFrame =new JFrame(); JPanel contentPane=new JPanel(); baseFrame.setTitle('Base Container'); baseFrame.setSize(400, 400); baseFrame.add(contentPane); JButton demoButton =new JButton('click'); demoButton.setBounds(100,95,95,30); JTextArea result =new JTextArea(); result.setBounds(130,140,95,30); contentPane.add(demoButton); contentPane.add(result); baseFrame.setDefaultCloseOperation(baseFrame.EXIT_ON_CL OSE); baseFrame.setVisible(true); demoButton.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { result.setText('button clicked'); } }); } public static void main(String() args) { ContainerDemo c =new ContainerDemo(); c.createApp(); } } 
Concluzie
În acest tutorial, am atins baza cu API-ul Swing furnizat de Java pentru construirea aplicațiilor GUI. Am discutat despre containerele și componentele oscilante majore și despre implementarea acestora.
De asemenea, am discutat despre gestionarea evenimentelor în Swing. Deși mecanismul de gestionare a evenimentelor este AWT, swing implementează evenimentele într-un mod eficient. Apoi am discutat despre diferiții manageri de layout furnizați de Swing API care ne permit să dispunem sau să aranjăm diferite componente în aplicațiile Swing GUI.
=> Consultați aici Ghidul perfect de instruire Java.
Lectură recomandată
- Tutorial de reflecție Java cu exemple
- Tutorial JAVA pentru începători: peste 100 de tutoriale video Java practice
- Tutorial Java Collections Framework (JCF)
- Modificatori de acces în Java - Tutorial cu exemple
- Java String cu buffer de șiruri și tutorial pentru generatorul de șiruri
- Introducere în limbajul de programare Java - Video Tutorial