Java Swing là gì?

Swing trong Java chính là bộ công cụ giao diện người dùng đồ họa (GUI). Swing sẽ cung cấp một bộ widget và gói phong phú, tạo ra các thành phần GUI phù hợp dành cho các ứng dụng Java. Thêm vào đó, nó còn là một phần của JFC (Java Foundation Classes), là API cung cấp GUI để lập trình Java GUI

Ứng dụng của Java Swing

Bộ công cụ này cung cấp các bộ điều khiển nâng cao như: thanh trượt, colorpicker, tree, bảng điều khiển…

Swing bao gồm những đặc điểm:

  • Độc lập với thiết bị
  • Dung lượng nhẹ
  • Dễ dàng cấu hình
  • Có thể mở rộng hay tùy chỉnh mà không ảnh hưởng đến thành phần khác

    java-swing-la-gi

    Java Swing là gì?

Sự khác biệt giữa AWT và Swing

STTJava SwingJava Swing
1Thành phần AWT phụ thuộc vào nền tảngThành phần Java Swing độc lập nền tảng
2Thành phần AWT khá nặngThành phần Swing nhẹ
3Không hỗ trợ PluginCó hỗ trợ Plugin
4Cũng cấp ít thành phần hơn SwingCung cấp nhiều thành phần và mạnh hơn AWT. Phải kể đến như: tables, list, scrollpanes, colorchooser, tabbedpane
5Không tuân theo cấu trúc MVC (Model View Controller)Swing theo cấu trúc MVC

GUI trong Java là gì?

GUI – Giao diện người dùng đồ họa trong Java, chính là trình tao trải nghiệm trực quan, rất dễ sử dụng cho các ứng dụng Java. Chủ yếu được làm bằng các thành phần đồ họa như: button, icon, window… Qua đó người dùng có thể tương tác với ứng dụng, và GUI đóng vai trò quan trọng để xây dựng giao diện cho ứng dụng Java.

GUI-trong-Java-la-gi

GUI trong Java là gì

Cấu trúc phân cấp lớp Java Swing

Java Swing phân cấp API như dưới đây:

Mọi thành phần trong Swing đều được kế thừa từ lớp Jcomponent như JButton, JComboBox, JLabel…

Ví dụ Swing Java

Thông thường, có hai cách để tạo khung (Frame): tạo đối tượng của lớp JFrame và kế thừa lớp JFrame. Hãy cùng CodeGym Hà Nội xem xét những ví dụ đơn giản để tạo ra một button và thêm vào đối tượng JFrame trong phương thức main()

Ví dụ Swing Java đơn giản

package vn.viettuts.swing;

import javax.swing.JButton;

import javax.swing.JFrame;

public class FirstSwingExample {

    public static void main(String[] args) {

        JFrame f = new JFrame();// tạo thể hiện của JFrame

        JButton b = new JButton("click");// tạo thể hiện của JButton

        b.setBounds(130, 50, 100, 40);// trục x , y , width, height

        f.setTitle("Ví dụ Java Swing");

        f.add(b);// thêm button vào JFrame

        f.setSize(400, 200);// thiết lập kích thước cho của sổ

        f.setLayout(null);// không sử dụng trình quản lý bố cục

        f.setVisible(true);// hiển thị cửa sổ

    }

}

 

Tạo đối tượng lớp JFrame

Không cần phải tạo thể hiện của lớp JFrame mà chúng ta có thể kế thừa lớp JFrame

package vn.viettuts.swing;

import javax.swing.JButton;

import javax.swing.JFrame;

public class JavaSwingExample3 extends JFrame {// kế thừa lớp JFrame

    public JavaSwingExample3() {

        JButton b = new JButton("click");// tạo button

        b.setBounds(130, 50, 100, 40);

        add(b);// thêm button vào JFrame

        setSize(400, 200);

        setLayout(null);

        setVisible(true);

    }

    public static void main(String[] args) {

        new JavaSwingExample3();

 

Học Java Swing từ A – Z

JButton Class – Lớp Jbutton

Dùng để tạo ra các nút kèm tên gọi. Sử dụng ActionListener nhằm kích thích hành động khi nhấn nút. Nó kế thừa lớp AbstractButton và độc lập hoàn toàn với nền tảng

import javax.swing.*;

public class example{

public static void main(String args[]) {

JFrame a = new JFrame(“example”);

JButton b = new JButton(“click me”);

b.setBounds(40,90,85,20);

a.add(b);

a.setSize(300,300);

a.setLayout(null);

a.setVisible(true);

}

}

JTextField Class – Lớp JTextField

Được kế thừa từ lớp JTextComponent và cũng cho phép chỉnh sửa dòng đơn.

import javax.swing.*;

public class example{

public static void main(String args[]) {

JFrame a = new JFrame(“example”);

JTextField b = new JTextField(“edureka”);

b.setBounds(50,100,200,30);

a.add(b);

a.setSize(300,300);

a.setLayout(null);

a.setVisible(true);

}

}

 

JScrollBar Class – lớp JScrollBar

Áp dụng cho việc thêm thanh cuộn ngang và dọc

import javax.swing.*;

class example{

example(){

JFrame a = new JFrame(“example”);

JScrollBar b = new JScrollBar();

b.setBounds(90,90,40,90);

a.add(b);

a.setSize(300,300);

a.setLayout(null);

a.setVisible(true);

}

public static void main(String args[]){

new example();

}

}

 

JPanel Class – Lớp JPanel

Là nơi cung cấp không gian cho ứng dụng, được kế thừa từ lớp JComponent

import java.awt.*;

import javax.swing.*;

public class Example{

Example(){

JFrame a = new JFrame(“example”);

JPanel p = new JPanel();

p.setBounds(40,70,200,200);

JButton b = new JButton(“click me”);

b.setBounds(60,50,80,40);

p.add(b);

a.add(p);

a.setSize(400,400);

a.setLayout(null);

a.setVisible(true);

}

public static void main(String args[])

{

new Example();

}

}

 

JMenu Class – Lớp JMenu

Hiển thị từ thanh Menu và là thành phần Menu kéo xuống, được kế thừa từ lớp JMenuItem

import javax.swing.*;

class Example{

JMenu menu;

JMenuItem a1,a2;

Example()

{

JFrame a = new JFrame(“Example”);

menu = new JMenu(“options”);

JMenuBar m1 = new JMenuBar();

a1 = new JMenuItem(“example”);

a2 = new JMenuItem(“example1”);

menu.add(a1);

menu.add(a2);

m1.add(menu);

a.setJMenuBar(m1);

a.setSize(400,400);

a.setLayout(null);

a.setVisible(true);

}

public static void main(String args[])

{

new Example();

}

}

JList Class – Lớp JList

Chính là đối tượng lớp Jlist đại diện danh sách các mục văn bản và kế thừa lớp JComponent.

import javax.swing.*;

public class Example

{

Example(){

JFrame a = new JFrame(“example”);

DefaultListModel<String> l = new DefaultListModel< >();

l.addElement(“first item”);

l.addElement(“second item”);

JList<String> b = new JList< >(l);

b.setBounds(100,100,75,75);

a.add(b);

a.setSize(400,400);

a.setVisible(true);

a.setLayout(null);

}

public static void main(String args[])

{

new Example();

}

}

 

JLabel Class – Lớp JLabel

Được sử dụng để đặt văn bản trong vùng chứa, và kế thừa lớp JComponent

import javax.swing.*;

public class Example{

public static void main(String args[])

{

JFrame a = new JFrame(“example”);

JLabel b1;

b1 = new JLabel(“edureka”);

b1.setBounds(40,40,90,20);

a.add(b1);

a.setSize(400,400);

a.setLayout(null);

a.setVisible(true);

}

}

JComboBox Class- Lớp JComboBox

Áp dùng để hiển thị Menu lựa chọn bật lên, kế thừa lớp JComponent

import javax.swing.*;

public class Example{

JFrame a;

Example(){

a = new JFrame(“example”);

string courses[] = { “core java”,”advance java”, “java servlet”};

JComboBox c = new JComboBox(courses);

c.setBounds(40,40,90,20);

a.add(c);

a.setSize(400,400);

a.setLayout(null);

a.setVisible(true);

}

public static void main(String args[])

{

new Example();

}

}

Layout Manager – Trình quản lý bố cục

Sử dụng để sắp xếp các thành phần bên trong vùng chứa. Bao gồm những bố cục như sau:

  1. Border layout – Bố cục đường viền
  2. Flow layout – Bố cục luồng
  3. GridBag layout – Bố cục dạng khung

Border Layout

Trình quản lý bố cục mặc định là Border Layout, được cài đặt thành phần ở tối đa các vị trí: trên, dưới, trái, phải và trung tâm.

Flow Layout

Bố cục mặc định cho JPanel, các thành phần lần lượt đặt vào một hàng.

GridBag Layout

Đặt các thành phần trong cùng một lưới, các thành phần này được phép trải dài hơn một ô.

import javax.swing.*;

public class example{

public static void main(String args[]) {

JFrame a = new JFrame(“example”);

JButton b = new JButton(“click me”);

b.setBounds(40,90,85,20);

a.add(b);

a.setSize(300,300);

a.setLayout(null);

a.setVisible(true);

}

}

Thông qua bài viết chúng ta đã thảo luận khái niệm Java Swing là gì? Hệ thống phân cấp các lớp và cách học Java Swing từ A – Z. Hi vọng các bạn đã hiểu rõ hơn và cách ứng dụng Swing khi sử dụng ngôn ngữ lập trình Java

Bài viết liên quan: