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.
1) | Các thành phần AWT là phụ thuộc nền tảng. Bạn đang xem: Java swing là gì | 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. Xem thêm: Sửa Lỗi Font Nova Trên Win 7, Sửa Lỗi Font Trong Nova |
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.

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.
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. Xem thêm: Gạch Porcelain Là Gì – Khác Biệt Với Gạch Ceramic |
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.thienmaonline.vn .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 mã tạo JFrame, JButton bên trong constructor.
package vn.thienmaonline.vn .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.thienmaonline.vn .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(); }}
AWT trong java
Giải phương trình bậc 2 trong Java Swing
Recent Updates Toán tử dấu 2 chấm (::) trong Java 8Lambda Expression – Biểu thức Lambda trong java 8Bài tập Java – Sắp xếp nhanh (Quick Sort) trong JavaBài tập Java – Sắp xếp chèn (Insertion Sort) trong JavaBài tập Java – Sắp xếp nổi bọt (Bubble Sort) trong JavaBài tập quản lý sinh viên trong JavaHashSet trong javaHashMap trong javaLớp WindowAdapter trong Java SwingLớp MouseMotionAdapter trong Java SwingLớp MouseAdapter trong Java SwingLớp KeyAdapter trong Java Swing
thienmaonline.vn on facebook
Học Lập Trình Online Miễn Phí – thienmaonline.vn
Danh sách bài học
Học java Học servlet Học jsp Học Hibernate Học Struts2 Học Spring Học SQL
Câu hỏi phỏng vấn
201 câu hỏi phỏng vấn java 25 câu hỏi phỏng vấn servlet 75 câu hỏi phỏng vấn jsp 52 câu hỏi phỏng vấn Hibernate 70 câu hỏi phỏng vấn Spring 57 câu hỏi phỏng vấn SQL
About thienmaonline.vn
Hệ thống bài học trên thienmaonline.vn bao gồm các bài lý thuyết và thực hành về các công nghệ java và công nghệ web. Các bài lý thuyết trên hệ thống thienmaonline.vn được tham khảo và tổng hợp từ các trang http://javatpoint.com, http://www.tutorialspoint.com, http://docs.oracle.com/en …
Scroll back to top
Chuyên mục: Hỏi Đáp