Bài tập về swing trong java có code giải năm 2024

Swing là một phần của các lớp Java Foundation (JFC), các phần khác của JFC là java2D và bộ công cụ Abstract windowkit (AWT). AWT, Swing & Java 2D được sử dụng để xây dựng giao diện người dùng đồ họa (GUI) trong java. Trong bài này, chúng ta sẽ cùng tìm hiểu về Swing API được sử dụng để xây dựng GUI trên đầu trang của AWT và có trọng lượng nhẹ hơn nhiều so với AWT.

Bài tập về swing trong java có code giải năm 2024

Swing API là một tập hợp các thành phần GUI mở rộng để giảm bớt gánh nặng của nhà phát triển để tạo các giao diện người dùng dựa trên Java. Thành phần Swing theo kiến ​​trúc Model-View-Controller đáp ứng các tiêu chí sau:

  • Một API duy nhất là đủ để hỗ trợ nhiều giao diện.
  • API được định hướng theo mô hình sao cho API cấp cao nhất không bắt buộc phải có dữ liệu.
  • API sử dụng mô hình Java Bean để Builder Tools và IDE có thể cung cấp các dịch vụ tốt hơn cho các nhà phát triển để sử dụng.

1. Sơ đồ phân cấp lớp Java Swing

Bài tập về swing trong java có code giải năm 2024

2. Tính năng của Swing

  • Trọng lượng nhẹ - Các thành phần Swing độc lập với API của hệ điều hành gốc do các điều khiển API Swing được kết xuất chủ yếu bằng cách sử dụng mã Java thuần túy thay vì các cuộc gọi hệ điều hành cơ bản.
  • Rich Controls - Swing cung cấp một bộ điều khiển nâng cao phong phú như Tree, TabbedPane, thanh trượt, colorpicker và điều khiển bảng.
  • Tùy biến cao - các điều khiển xoay có thể được tùy chỉnh theo một cách rất dễ dàng và độc lập với biểu diễn bên trong.
  • Pluggable look-and-feel - Swing dựa nhìn GUI Application và có thể thay đổi thời gian chạy, dựa trên các giá trị có sẵn.

3. Một ví dụ swing đơn giản

Trong ví dụ dưới đây, chúng tôi sẽ sử dụng một số thành phần Swing mà bạn chưa học được trong hướng dẫn này. Chúng tôi sẽ giải dõ từng chi tiết trong hướng dẫn sắp tới.

Chương trình dưới đây sẽ tạo ra một màn hình đăng nhập.

import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JPasswordField; import javax.swing.JTextField; public class SwingFirstExample {     public static void main(String[] args) {             // Creating instance of JFrame         JFrame frame = new JFrame("My First Swing Example");         // Setting the width and height of frame         frame.setSize(350, 200);         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);         / Creating panel. This is same as a div tag in HTML          We can create several panels and add them to specific          positions in a JFrame. Inside panels we can add text          fields, buttons and other components.          /         JPanel panel = new JPanel();             // adding panel to frame         frame.add(panel);         / calling user defined method for adding components          to the panel.          /         placeComponents(panel);         // Setting the frame visibility to true         frame.setVisible(true);     }     private static void placeComponents(JPanel panel) {         / We will discuss about layouts in the later sections          of this tutorial. For now we are setting the layout          to null          /         panel.setLayout(null);         // Creating JLabel         JLabel userLabel = new JLabel("User");         / This method specifies the location and size          of component. setBounds(x, y, width, height)          here (x,y) are cordinates from the top left          corner and remaining two arguments are the width          and height of the component.          /         userLabel.setBounds(10,20,80,25);         panel.add(userLabel);         / Creating text field where user is supposed to          enter user name.          /         JTextField userText = new JTextField(20);         userText.setBounds(100,20,165,25);         panel.add(userText);         // Same process for password label and text field.         JLabel passwordLabel = new JLabel("Password");         passwordLabel.setBounds(10,50,80,25);         panel.add(passwordLabel);         /*This is similar to text field but it hides the user          entered data and displays dots instead to protect          the password like we normally see on login screens.          /         JPasswordField passwordText = new JPasswordField(20);         passwordText.setBounds(100,50,165,25);         panel.add(passwordText);         // Creating login button         JButton loginButton = new JButton("login");         loginButton.setBounds(10, 80, 80, 25);         panel.add(loginButton);     } } Đầu ra:

Bài tập về swing trong java có code giải năm 2024

Trong ví dụ trên, chúng tôi đã sử dụng một số thành phần như sau:

- JFrame - Một khung là một thể hiện của JFrame. Khung là một cửa sổ có thể có tiêu đề, đường viền, menu, nút, trường văn bản và một số thành phần khác. Một ứng dụng Swing phải có một khung để có các thành phần được thêm vào nó.

- JPanel - Một bảng điều khiển là một thể hiện của JPanel. Một khung có thể có nhiều hơn một bảng và mỗi bảng có thể có nhiều thành phần. Bạn cũng có thể gọi chúng là các phần của Frame. Các bảng hữu ích cho việc nhóm các thành phần và đặt chúng vào các vị trí thích hợp trong một khung.

- JLabel - Nhãn là một thể hiện của lớp JLabel. Nhãn là văn bản và hình ảnh không thể chọn. Nếu bạn muốn hiển thị chuỗi hoặc hình ảnh trên khung, bạn có thể làm như vậy bằng cách sử dụng nhãn. Trong ví dụ trên, chúng tôi muốn hiển thị văn bản “Người dùng” và “Mật khẩu” ngay trước các trường văn bản, chúng tôi đã thực hiện việc này bằng cách tạo và thêm nhãn vào các vị trí thích hợp.

- JTextField - Được sử dụng để chụp các đầu vào của người dùng, đây là các hộp văn bản mà người dùng nhập dữ liệu.

- JPasswordField - Tương tự như trường văn bản nhưng dữ liệu đã nhập bị ẩn và hiển thị dưới dạng dấu chấm trên GUI.

- JButton - Một nút là một thể hiện của lớp JButton. Trong ví dụ trên chúng ta có một nút "Đăng nhập".

Hy vọng với những hướng dẫn lập trình Java Swing của mình sẽ giúp ích nhiều cho các bạn để việc tìm hiểu dễ dàng và nhanh chóng hơn.