Tổng quan về Java Swing 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.. Không giống AWT, Java Swing cung cấp các thành phần Compone
Trang 1Tổng quan về Java Swing
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 cùng của AWT (Abstract Windowing Toolkit) API và được viết hoàn toàn bằng Java
Không giống AWT, Java Swing cung cấp các thành phần (Component) gọn nhẹ và độc lập nền tảng Javax.swing Package cung cấp các lớp cho Java Swing chảng hạn như JButton, JTextField, JTextArea, JRadioButton, JCheckbox, JMenu, JColorChooser, …
Điểm khác nhau giữa AWT và Swing
Bảng dưới đây liệt kê một số điểm khác nhau giữa AWT và Swing:
Ghi chú: Đối tượng L&F là viết tắt của Look and Feel, bạn có thể hiểu đó là đối tượng thuộc về
cảm quan
phần Java Swing là độc lập nền tảng
phần Swing
là g ọn nhẹ
pluggable L&F
cấp các thành phần mạnh mẽ hơn như table, list,
Trang 2scrollpanes, colorchooser, tabbedpane
AWT không theo sau MVC (Model View Controller), ở đây model biểu diễn
dữ liệu, view biểu diễn sự trình bày và controller hoạt động như một Interface
giữa model và view
Swing theo
sau MVC
Câu hỏi: JFC là gì?
Java Foundation Classes (JFC) là một tập hợp các thành phần GUI giúp đơn giản hóa việc phát triển các ứng dụng Destop
Cấu trúc thứ bậc của các lớp trong Java Swing
Sơ đồ dưới đây cung cấp cho các bạn cái nhìn tổng quan về cấu trúc theo thứ bậc của các lớp trong Java Swing
Trang 3Các phương thức được sử dụng phổ biến của lớp
Component
Trong bảng sau, chúng tôi liệt kê một số phương thức thường được sử dụng trong Java Swing
Phương thức Miêu tả
public void add(Component c) Thêm một thành phần trên một thành phần khác
public void setSize(int width,int height) Thiết lập kích cỡ của thành phần
Trang 4public void setLayout(LayoutManager m) Thiết lập Layout Manager cho thành phần
public void setVisible(boolean b) Thiết lập tính nhìn thấy (visible) của thành phần
Theo mặc định là false
Một số ví dụ cơ bản về Java Swing
Có hai cách để tạo một Frame:
Bởi tạo đối tượng của lớp Frame (quan hệ kết hợp - Association)
Bởi kế thừa lớp Frame (quan hệ kế thừa - inheritance)
Bạn có thể viết code của Swing bên trong phương thức main(), constructor hoặc bất cứ phương thức nào khác
Ghi chú: Có lẽ bây giờ bạn có thể chưa hiểu khi theo dõi các ví dụ này, nhưng hãy cứ làm quen
dần trước đã Sau khi theo dõi hết loạt bài, bạn sẽ thấy chúng trở nên dễ dàng hơn
Ví dụ
Trong chương trình ví dụ về Java Swing sau, chúng ta tạo một button và thêm nó trên đối tượng JFrame bên trong phương thức main()
File: FirstSwingExample.java
import javax swing *;
public class FirstSwingExample
public static void main ( String [] args ) {
JFrame f = new JFrame (); //Tao instance cua JFrame
JButton b = new JButton ( "click" ); //Tao instance cua JButton
f add ( ); //Them button vao trong JFrame
Trang 5
f setLayout ( null ); //Khong su dung Layout Manager
}
}
Ví dụ về Swing bởi quan hệ kết hợp bên trong Constructor
Chúng ta có thể viết tất cả code để tạo JFrame, JButton và lời gọi phương thức bên trong Java Constructor
File: Simple.java
import javax swing *;
public class Simple
JFrame f ;
Simple (){
f new JFrame (); //Tao instance cua JFrame
JButton b = new JButton ( "click" ); //Tao instance cua JButton
f add ( ); //Them button vao trong JFrame
}
public static void main ( String [] args ) {
new Simple ();
}
}
Phương thức setBounds(int xaxis, int yaxis, int width, int height) được sử dụng trong ví dụ trên
để thiết lập vị trí của button
Trang 6Ví dụ về Swing bởi quan hệ kế thừa
Bạn cũng có thể kế thừa lớp JFrame, vì thế bạn không cần tạo instance của lớp JFrame một cách tường minh
File: Simple2.java
import javax swing *;
public class Simple2 extends JFrame { //Ke thua JFrame
JFrame f ;
Simple2 (){
JButton b = new JButton ( "click" ); //Tao button
add ( ); //Them button tren frame
}
public static void main ( String [] args ) {
new Simple2 ();
}}
Biên dịch và chạy các chương trình ví dụ trong bài
Để biên dịch các chương trình ví dụ trên cũng như các chương trình trong bài, bạn sử dụng
command prompt Vào D:/ > SWING và gõ lệnh sau (chẳng hạn với ví dụ này)
Nếu không có lỗi nào xảy ra, tức là việc biên dịch chương trình của bạn đã thành công Bạn chạy chương trình bởi sử dụng lệnh sau: