Swing trong Java – Giới thiệu Java Swing
Sử dụng để tạo các ứng dụng dựa trên cửa sổ, Java Swing là một thành phần của Java Foundation Classes (JFC). Nó được viết hoàn toàn bằng Java và được xây dựng trên API AWT (Abstract Windowing Toolkit).
Khác với AWT, Java Swing cung cấp các thành phần độc lập với nền tảng và nhẹ nhàng hơn.
Gói javax.Swing cung cấp các lớp cho API của java swing như Nút bấm, Ô nhập liệu, Vùng văn bản, Nút lựa chọn đơn, Nút kiểm tra, Menu, Bảng chọn màu, và nhiều lớp khác.
Nội dung chủ yếu.
Sự khác nhau giữa AWT và Swing
Có rất nhiều điểm khác nhau giữa java awt và swing được đề cập dưới đây.
No. | Java AWT | Java 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 loại của API java swing được cung cấp dưới đây.
Các phương thức thường dùng của lớp Component
Các phương pháp của lớp Component được sử dụng phổ biến trong java swing được liệt kê dưới đây.
Phương thức | Mô 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 width, 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 phương pháp để tạo cấu trúc (Frame):.
Chúng ta có thể lập trình bằng Swing trong hàm main(), hàm khởi tạo hoặc bất kỳ phương thức nào khác.
Ví dụ Swing Java đơn giản
Đoạn văn sau khi được chỉnh sửa:Phương thức chính() trong đối tượng JFrame, chúng ta tạo một nút và thêm nó vào. Hãy xem một ví dụ swing đơn giản. Chúng ta.
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 , 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ổ } }
Kết quả:.
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 đoạn mã tạo JFrame, JButton bên trong hàm khởi tạo.
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ể sử dụng lớp JFrame đã được thừa kế, vì vậy không cần tạo một đối tượng mới 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(); } }