Nội dung
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
Sự khác biệt giữa AWT và Swing
STT | Java Swing | Java Swing |
1 | Thành phần AWT phụ thuộc vào nền tảng | Thành phần Java Swing độc lập nền tảng |
2 | Thành phần AWT khá nặng | Thành phần Swing nhẹ |
3 | Không hỗ trợ Plugin | Có hỗ trợ Plugin |
4 | Cũng cấp ít thành phần hơn Swing | Cung cấp nhiều thành phần và mạnh hơn AWT. Phải kể đến như: tables, list, scrollpanes, colorchooser, tabbedpane |
5 | Khô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.
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:
- Border layout – Bố cục đường viền
- Flow layout – Bố cục luồng
- 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:
0 Lời bình