× Giới thiệu Lịch khai giảng Tin tức Sản phẩm học viên

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.

java swing

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.

  1. 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ổ.
  2. Khung : Đây là một cửa sổ hoạt động đầy đủ với tiêu đề và các biểu tượng.
  3. 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!