Java Swing và những điều mà bạn chưa biết
08/02/2022 09:25
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 ra 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 để lập trình Java GUI 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 phụ thuộc vào nền tảng cũ hơn. Bạn có thể sử dụng các thành phần lập trình GUI đơn giản của Java 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.
Sơ đồ phân cấp lớp Java Swing
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 Swing GUI, chúng ta cần ít nhất một đối tượng container. Có 3 loại vù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.
- 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.
Cách tạo GUI trong Java với ví dụ
Bây giờ trong Hướng dẫn Java GUI này, chúng ta hãy hiểu cách tạo GUI trong Java với các ví dụ Swings trong Java.
Bước 1) Sao chép mã vào trình
chỉnh sửa Trong bước đầu tiên, 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 frame
frame.setVisible(true);
}
}
Bước 2) Chạy mã
Bước tiếp theo, Lưu, Biên dịch và Chạy mã
Bước 3) Sao chép đoạn mã sau vào một trình soạn thảo
Bây giờ 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ề giao diện người dùng Java nhất định
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ã
Tiếp theo, Thực thi mã. Bạn sẽ nhận được một nút lớn.
Bước 5) Thêm hai nút
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 & Chạy chương trình
Tiếp theo, Lưu, Biên dịch và Chạy chương trình.
Bước 7) Kiểm tra đầu ra Đầu ra
không mong muốn =? Các nút đang bị chồng lên nhau.
>>> Tham khảo: Khóa học lập trình Java
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 vùng chứa. Có nhiều trình quản lý bố cục, nhưng những trình quản lý thường xuyên được sử dụng nhất là-
Java BorderLayout
A BorderLayoutđặ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 BorderLayout
Java FlowLayout
FlowLayoutlà 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 FlowLayout
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 ô.
Java GridBagLayout
Bước 8) Tạo khung trò chuyện
Còn cách tạo khung trò chuyện như bên dưới?
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 Frame
JFrame frame = new JFrame("Chat Frame");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 400);
//Creating the MenuBar and adding components
JMenuBar 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 components
JPanel panel = new JPanel(); // the panel is not visible in output
JLabel label = new JLabel("Enter Text");
JTextField tf = new JTextField(10); // accepts upto 10 characters
JButton send = new JButton("Send");
JButton reset = new JButton("Reset");
panel.add(label); // Components Added using Flow Layout
panel.add(tf);
panel.add(send);
panel.add(reset);
// Text Area at the Center
JTextArea 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);
}
}
Bạn có thể tham khảo thêm thông tin về java tại Blog của T3H và đăng ký khóa học lập trình phù hợp với nhu cầu với mức giá ưu đãi nhất!