Mục lục
Java Swing là một bộ công cụ lập trình giao diện trong Java cung cấp vô số thành phần dùng để lập trình ứng dụng desktop được phát hành bởi Sun Microsystems.
Thư viện Swing được xây dựng dựa trên Java Abstract Widget Toolkit (AWT) cũng là một bộ công cụ lập trình giao diện cũ được phát triển trước đây. Chúng ta có thể sử dụng các thành phần giao diện như Button, TextBox etc mà không cần phải tạo lại chúng.
Sơ đồ cấu trúc Swing
Hình dưới đây mô tả các thành phần trong Java Swing
Tất cả các thành phần trong swing đại diện là JComponent có thể được thêm vào các container class.
Container class là gì?
Container class những class có thể chứa các thành phần khác như Button, TextButton, Checkbox etc. Vì vậy để khởi tạo một ứng dụng có giao diện đồ hoạ trong Swing chúng ta cần ít nhất một container object.
Có 3 loại container chính sau:
- Panel: Đây là một containter thuần tuý nhất dùng cho mục đích tổ chức các layout trên một màn hình chính.
- Frame: Đây là một container với đầy đủ các chức năng, được xem như là một màn hình chính trong ứng dụng.
- Dialog: Nó có thể được coi như một cửa sổ bật lên khi chúng ta cần hiển thị tin nhắn đến người dùng. Dialog không được xem là một màn hình chính trong ứng dụng giống như Frame.
GUI trong Java là gì
GUI viết tắt của Graphical User Interface cung cấp một bộ công cụ cho phép các lập trình viên có thể xây dựng các ứng dụng có giao diện đồ hoạ. Nó chủ yếu được làm bằng các thành phần đồ họa cơ bản như Button, Label, Windows, v.v. qua đó người dùng có thể tương tác với các ứng dụng. Swing GUI trong Java đóng một vai trò quan trọng trong việc xây dựng giao diện dễ dàng.
Đối tượng học Java Swing
Để làm các ứng dụng giao diện trong Java với Swing, trước tiên các bạn cần nắm vững kiến thức về Java cơ bản, Hướng đối tượng.
Ngoài ra để làm các ứng dụng có kết nối đến cơ sơ dữ liệu thì các bạn cần có kiến thức về JDBC, một API dùng để kết nối và thực thi các câu lệnh SQL xuống database. Ngoài ra các bạn cũng cần có kiến thức về SQL để viết các câu truy vấn hiệu quả.
Ví dụ cơ bản sử dụng Swing
Trong ví dụ dưới đây chúng ta sẽ sử dụng một số thành phần trong Java Swing để xây dựng một form đăng nhập đơn giản.
Ở đây các bạn có thể dùng bất trình IDE nào mà các bạn ưa thích để thực thi đoạn code dưới đây.
Mình dùng Intellij, nếu các bạn cũng thích hoặc mong muốn tìm hiểu thì có thể tìm hiểu tại đây.
package com.company; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JPasswordField; import javax.swing.JTextField; public class Main{ public static void main(String[] args) { // Creating instance of JFrame JFrame frame = new JFrame("Dự án Java Swing Đầu Tiên"); frame.setSize(350, 200); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel panel = new JPanel(); // Thêm Panel vào Frame frame.add(panel); placeComponents(panel); // Hiển thị frame cho người dùng frame.setVisible(true); } private static void placeComponents(JPanel panel) { panel.setLayout(null); // Tạo một JLabel JLabel userLabel = new JLabel("Người dùng"); /** * Chỉ định vị trí và kích thước của userLabel. * setBounds(x, y, width, height) * x,y là toạ đồ từ phía trên và bên trái của label * 2 tham số còn lại chỉ định chiều rộng và chiều cao của label */ userLabel.setBounds(10,20,80,25); panel.add(userLabel); // Tạo Inout cho người dùng nhập username JTextField userText = new JTextField(20); userText.setBounds(100,20,165,25); panel.add(userText); // Tương tự taọ label và input cho người dùng nhập mật khẩu JLabel passwordLabel = new JLabel("Mật khẩu"); passwordLabel.setBounds(10,50,80,25); panel.add(passwordLabel); JPasswordField passwordText = new JPasswordField(20); passwordText.setBounds(100,50,165,25); panel.add(passwordText); // Tạo Button cho user chọn đăng nhập JButton loginButton = new JButton("Đăng nhập"); loginButton.setBounds(10, 80, 100, 25); panel.add(loginButton); } }
Kết quả chúng ta sẽ có một mẫu đăng nhập người dùng như sau:
IDE hỗ trợ lập trình Java Swing
Về nguyên tắc thì chúng ta có thể lập trình Java Swing trên bất kỳ IDE nào như Intellij, Eclipse, Netbeans. Tuy nhiên cá nhân mình nhận thấy Netbeans là một công cụ tuyệt vời để lập trình Java Swing.
Ngoài việc giao diện thân thiện, dễ sử dụng cho người mới bắt đầu, thì nó còn hỗ trợ kéo thả các thành phần giao diện trong Swing khá tiện lợi, chúng ta không cần code chay như ví dụ ở phía trên nữa. Chỉ cần kéo thả là code sẽ tự sinh, nhiệm vụ chính của chúng ta là xử lý các sự kiện khi người dùng tương tác các thành phần trên giao diện.
Đây là trang chủ các bạn có thể vào để download cách nhanh chóng: https://netbeans.apache.org/download/nb120/nb120.html
Ngoài ra netbeans cũng hỗ trợ cho nhiều hệ điều hành khác nhau như Linux, Macos, Windows.
Nguồn tham khảo
https://www.guru99.com/java-swing-gui.html
https://beginnersbook.com/2015/07/java-swing-tutorial/