11/08/2018, 19:08

Swing trong Java – Giới thiệu Java Swing

Previous Java Swing là một phần của Java Foundation Classes (JFC) được sử dụng để tạo các ứng dụng window-based. Nó được xây dựng trên API AWT (Abstract Windowing Toolkit) và được viết hoàn toàn bằng Java. Không giống như AWT, Java Swing cung cấp các thành phần không phụ thuộc ...

Previous

Java Swing là một phần của Java Foundation Classes (JFC) được sử dụng để tạo các ứng dụng window-based. Nó được xây dựng trên API AWT (Abstract Windowing Toolkit) và được viết hoàn toàn bằng Java.

Không giống như AWT, Java Swing cung cấp các thành phần không phụ thuộc vào nền tảng và nhẹ hơn.

Gói javax.swing cung cấp các lớp cho java swing API như JButton, JTextField, JTextArea, JRadioButton, JCheckbox, JMenu, JColorChooser, v.v.

Sự khác nhau giữa AWT và Swing

Có rất nhiều sự khác biệt giữa java awt và swing được đưa ra dưới đây.

No.Java AWTJava Swing
1)Các thành phần AWT là phụ thuộc nền tảng.Các thành phần Java swing là độc lập nền tảng.
2)Các thành phần AWT là nặng.Các thành phần Swing là nhẹ.
3)AWT không hỗ trợ plugin.Swing có hỗ trợ plugin.
4)AWT cung cấp ít thành phần hơn Swing.Swing cung cấp nhiều thành phần mạnh mẽ hơn AWT như tables, lists, scrollpanes, colorchooser, tabbedpane, vv.
5)AWT không tuân theo MVC(Model View Controller) trong đó model biểu diễn data, view biểu diễn hiển thị và controller biểu diễn các action để kết nối model với view.Swing tuân theo mô hình MVC.

JFC là gì?

Java Foundation Class (JFC) là một bộ các thành phần GUI đơn giản hóa sự phát triển của các ứng dụng desktop.

Phân cấp các lớp Java Swing

Hệ thống phân cấp của API java swing được đưa ra dưới đây.

Phân cấp các lớp Java Swing

Các phương thức thường dùng của lớp Component

Các phương thức của lớp Component được sử dụng rộng rãi trong java swing được đưa ra dưới đây.

Phương thứcMô tả
public void add(Component c)thêm một thành phần vào thành phần khác.
public void setSize(int awidth, int height)thiết lập kích thước của thành phần.
public void setLayout(LayoutManager m)thiết lập trình quản lý bố cục (layout) cho thành phần.
public void setVisible(boolean b)thiết lập khả năng hiển thị của thành phần. Nó theo mặc định là false (ẩn)

Ví dụ về Java Swing

Có hai cách để tạo khung (Frame):

  • Bằng cách tạo đối tượng của lớp JFrame.
  • Bằng cách kế thừa lớp JFrame.

Chúng ta có thể viết code của Swing bên trong hàm main(), constructor hoặc bất kỳ phương thức nào khác.

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

Chúng ta hãy xem một ví dụ swing đơn giản, nơi chúng ta đang tạo một button và thêm nó vào đối tượng JFrame bên trong phương thức main().

File: FirstSwingExample.java

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 , awidth, 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ổ
    }
}

Kết quả:

Ví dụ Java Swing

Ví dụ Java Swing – tạo đối tượng của lớp JFrame

Chúng ta cũng có thể viết tất cả các mã tạo JFrame, JButton bên trong constructor.

package vn.viettuts.swing;

import javax.swing.JButton;
import javax.swing.JFrame;

public class JavaSwingExample2 {
    JFrame f;

    public JavaSwingExample2() {
        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);

        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ổ
    }
}

Ví dụ Java Swing – kế thừa lớp JFrame

Chúng ta cũng có thể kế thừa lớp JFrame, vì vậy không cần phải tạo thể hiện củ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();
    }
}
Previous
0