Co to jest Swing w Javie?
Swing in Java to zestaw narzędzi z graficznym interfejsem użytkownika (GUI), który zawiera komponenty GUI. Swing zapewnia bogaty zestaw widżetów i pakietów do tworzenia zaawansowanych komponentów GUI dla aplikacji Java. Swing jest częścią Java Foundation Classes (JFC), która jest interfejsem API dla programów Java, które zapewniają graficzny interfejs użytkownika.
Biblioteka Java Swing jest zbudowana na podstawie Java Abstract Widget Toolkit ( AWT ), starszego zestawu narzędzi GUI zależnego od platformy. Możesz używać komponentów programowania Java GUI, takich jak przycisk, pole tekstowe itp. Z biblioteki i nie musisz tworzyć komponentów od podstaw.
W tym samouczku Java Swing nauczysz się:
- Co to jest Swing w Javie?
- Co to jest klasa kontenera?
- Co to jest GUI w Javie?
- Przykład Java GUI
- Menedżer układu Java
- Java BorderLayout
- Java FlowLayout
- Java GridBagLayout
Diagram hierarchii klas Swing w języku Java
Wszystkie komponenty w Java Swing są komponentami JComponent, które można dodawać do klas kontenerów.
Co to jest klasa kontenera?
Klasy kontenerów to klasy, które mogą zawierać inne składniki. Dlatego do stworzenia graficznego interfejsu użytkownika w języku Java potrzebujemy co najmniej jednego obiektu kontenera. Istnieją 3 typy kontenerów Java Swing.
- Panel : To czysty pojemnik i sam w sobie nie jest oknem. Jedynym celem panelu jest organizowanie komponentów w oknie.
- Ramka : Jest to w pełni funkcjonalne okno z tytułem i ikonami.
- Okno dialogowe : Można to traktować jak wyskakujące okienko, które wyskakuje, gdy ma zostać wyświetlona wiadomość. Nie jest to w pełni funkcjonalne okno jak Frame.
Co to jest GUI w Javie?
GUI (Graphical User Interface) w języku Java to łatwy w użyciu program do tworzenia wrażeń wizualnych dla aplikacji Java. Składa się głównie z elementów graficznych, takich jak przyciski, etykiety, okna itp., Dzięki którym użytkownik może wchodzić w interakcję z aplikacją. GUI odgrywa ważną rolę w tworzeniu łatwych interfejsów dla aplikacji Java.
Przykład Java GUI
Teraz, w tym samouczku Swing Java, przyjrzyjmy się GUI z przykładami Java Swing.
Przykład : aby nauczyć się programowania w języku Java w tym samouczku z graficznym interfejsem użytkownika w języku Java. Krok 1) Skopiuj następujący kod do edytora
import javax.swing.*;class gui{public static void main(String args[]){JFrame frame = new JFrame("My First GUI");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(300,300);JButton button = new JButton("Press");frame.getContentPane().add(button); // Adds Button to content pane of frameframe.setVisible(true);}}
Krok 2) Zapisz, skompiluj i uruchom kod.Krok 3) Teraz dodajmy przycisk do naszej ramki. Skopiuj następujący kod do edytora z podanego przykładu Java GUI
import javax.swing.*;class gui{public static void main(String args[]){JFrame frame = new JFrame("My First GUI");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(300,300);JButton button1 = new JButton("Press");frame.getContentPane().add(button1);frame.setVisible(true);}}
Krok 4) Wykonaj kod. Otrzymasz duży przycisk
Krok 5) Co powiesz na dodanie dwóch przycisków? Skopiuj następujący kod do edytora.
import javax.swing.*;class gui{public static void main(String args[]){JFrame frame = new JFrame("My First GUI");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(300,300);JButton button1 = new JButton("Button 1");JButton button2 = new JButton("Button 2");frame.getContentPane().add(button1);frame.getContentPane().add(button2);frame.setVisible(true);}}
Krok 6) Zapisz, skompiluj i uruchom program.Krok 7) Nieoczekiwane dane wyjściowe =? Przyciski nachodzą na siebie.
Menedżer układu Java
Menedżer układu służy do układania (lub rozmieszczania) komponentów graficznego interfejsu użytkownika Java wewnątrz kontenera. Istnieje wiele menedżerów układu, ale najczęściej używane są:
Java BorderLayout
ABorderLayout
umieszcza komponenty w maksymalnie pięciu obszarach: górnym, dolnym, lewym, prawym i środkowym. Jest to domyślny menedżer układu dla każdej ramki JFrame Javy
Java FlowLayout
FlowLayout
jest domyślnym menedżerem układu dla każdego JPanel
. Po prostu układa komponenty w jednym rzędzie jeden po drugim.
Java GridBagLayout
Jest to bardziej wyrafinowany ze wszystkich układów. Wyrównuje komponenty, umieszczając je w siatce komórek, umożliwiając komponentom rozciąganie się na więcej niż jedną komórkę.
Krok 8) Co powiesz na stworzenie ramki czatu, jak poniżej?
Spróbuj zakodować się przed spojrzeniem na poniższy program.
//Usually you will require both swing and awt packages// even if you are working with just swings.import javax.swing.*;import java.awt.*;class gui {public static void main(String args[]) {//Creating the FrameJFrame frame = new JFrame("Chat Frame");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(400, 400);//Creating the MenuBar and adding componentsJMenuBar mb = new JMenuBar();JMenu m1 = new JMenu("FILE");JMenu m2 = new JMenu("Help");mb.add(m1);mb.add(m2);JMenuItem m11 = new JMenuItem("Open");JMenuItem m22 = new JMenuItem("Save as");m1.add(m11);m1.add(m22);//Creating the panel at bottom and adding componentsJPanel panel = new JPanel(); // the panel is not visible in outputJLabel label = new JLabel("Enter Text");JTextField tf = new JTextField(10); // accepts upto 10 charactersJButton send = new JButton("Send");JButton reset = new JButton("Reset");panel.add(label); // Components Added using Flow Layoutpanel.add(tf);panel.add(send);panel.add(reset);// Text Area at the CenterJTextArea ta = new JTextArea();//Adding Components to the frame.frame.getContentPane().add(BorderLayout.SOUTH, panel);frame.getContentPane().add(BorderLayout.NORTH, mb);frame.getContentPane().add(BorderLayout.CENTER, ta);frame.setVisible(true);}}