Swing trong Java là gì?
Swing trong Java là một bộ công cụ Giao diện Người dùng Đồ họa (GUI) bao gồm các thành phần GUI. Swing cung cấp một bộ widget và gói phong phú để tạo các thành phần GUI tinh vi cho các ứng dụng Java. Swing là một phần của Java Foundation Classes (JFC), là một API cho các chương trình Java cung cấp GUI.
Thư viện Java Swing được xây dựng dựa trên Bộ công cụ tiện ích con trừu tượng Java ( AWT ), một bộ công cụ GUI cũ hơn, phụ thuộc vào nền tảng. Bạn có thể sử dụng các thành phần lập trình Java GUI như nút, hộp văn bản, v.v. từ thư viện và không phải tạo các thành phần từ đầu.
Trong hướng dẫn Java Swing này, bạn sẽ học-
- Swing trong Java là gì?
- Lớp Container là gì?
- GUI trong Java là gì?
- Ví dụ về GUI trong Java
- Trình quản lý bố cục Java
- Java BorderLayout
- Java FlowLayout
- Java GridBagLayout
Sơ đồ phân cấp lớp Java Swing

Tất cả các thành phần trong Java Swing là JComponent có thể được thêm vào các lớp vùng chứa.
Lớp Container là gì?
Các lớp vùng chứa là các lớp có thể có các thành phần khác trên đó. Vì vậy, để tạo Java GUI, chúng ta cần ít nhất một đối tượng vùng chứa. Có 3 loại thùng chứa Java Swing.
- Bảng điều khiển : Nó là một vùng chứa thuần túy và bản thân nó không phải là một cửa sổ. Mục đích duy nhất của Panel là tổ chức các thành phần trên một cửa sổ.
- Khung : Đây là một cửa sổ hoạt động đầy đủ với tiêu đề và các biểu tượng của nó.
- Hộp thoại : Nó có thể được coi như một cửa sổ bật lên bật ra khi một tin nhắn được hiển thị. Nó không phải là một cửa sổ hoạt động đầy đủ như Frame.
GUI trong Java là gì?
GUI (Giao diện người dùng đồ họa) trong Java là một trình tạo trải nghiệm trực quan dễ sử dụng cho các ứng dụng Java. Nó chủ yếu được làm bằng các thành phần đồ họa như nút, nhãn, cửa sổ, v.v. mà qua đó người dùng có thể tương tác với ứng dụng. GUI đóng một vai trò quan trọng để xây dựng giao diện dễ dàng cho các ứng dụng Java.
Ví dụ về GUI trong Java
Bây giờ trong Hướng dẫn Swing Java này, chúng ta hãy hiểu GUI với các ví dụ về Java Swing.
Ví dụ : Để học lập trình Java GUI trong hướng dẫn Java GUI này Bước 1) Sao chép mã sau vào trình chỉnh sửa
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);}}
Bước 2) Lưu, Biên dịch và Chạy mã.Bước 3) Bây giờ chúng ta hãy Thêm một nút vào khung của chúng ta. Sao chép mã sau vào một trình soạn thảo từ Ví dụ về GUI Java đã cho
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);}}
Bước 4) Thực thi mã. Bạn sẽ nhận được một nút lớn
Bước 5) Làm thế nào về việc thêm hai nút? Sao chép mã sau vào một trình chỉnh sửa.
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);}}
Bước 6) Lưu, Biên dịch và Chạy chương trình.Bước 7) Đầu ra không mong muốn =? Các nút đang bị chồng lên nhau.
Trình quản lý bố cục Java
Trình quản lý bố cục được sử dụng để bố trí (hoặc sắp xếp) các thành phần GUI java bên trong một container.Có nhiều trình quản lý bố cục, nhưng thường được sử dụng nhất là-
Java BorderLayout
ABorderLayout
đặt các thành phần vào tối đa năm khu vực: trên cùng, dưới cùng, trái, phải và trung tâm. Nó là trình quản lý bố cục mặc định cho mọi java JFrame
Java FlowLayout
FlowLayout
là trình quản lý bố cục mặc định cho mọi JPanel
. Nó chỉ đơn giản là lần lượt đưa ra các thành phần trong một hàng duy nhất.
Java GridBagLayout
Nó là phức tạp hơn của tất cả các bố cục. Nó sắp xếp các thành phần bằng cách đặt chúng trong một lưới ô, cho phép các thành phần kéo dài nhiều hơn một ô.
Bước 8) Bạn tạo khung chat như bên dưới thì sao?
Hãy thử tự viết mã trước khi xem chương trình bên dưới.
//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);}}