Thông thường ứng dụng của ta viết ra, chúng phải thực hiện một số tác vụ làm thủ tục trước khi hiện lên cho người dùng sẵn sàng sử dụng. Thời gian này khá lâu, đặc biệt là ứng dụng Java. Do đó để người dùng không nóng lòng, người ta lại chế ra cái khái niệm SplashScreen.
SplashScreen là màn hình lé lên trong khi khởi động ứng dụng rồi vội vàng dập tắt đi khi ứng dụng nạp xong. Nhưng không hẵn là thế, có người còn cố tình làm chậm khâu khởi động, vì SplashScreen của họ khá đẹp muốn end user chiêm ngưỡng hay chỉ đơn giản là quảng cáo!
6. Splash screen
Vậy trong Java thực hiện SplashScreen như thế nào?
Trước mắt chúng ta có 3 cách thực hiện:
-
Sử dụng thành phần Swing làm SplashScreen: Cách này có 1 yếu điểm là bản thân Swing vốn dĩ load đã chậm rồi, do đó người ta thường chọn cách 2
-
Sử dụng thành phần AWT làm SplashScreen, vì AWT hơn nên thời gian nạp SplashScreen nhanh hơn Swing
-
May mắn thay, Java 1.6 ra đời có sẵn SplashScreen luôn. SplashScreen trong Java 1.6 khởi động trước cà JVM do đó thời gian nạp SplashScreen gần như tức thời.
-
Tôi xin trình bày xây dựng SplashScreen theo cách 3, cách 1 và 2 để dành cho bạn tìm hiểu
-
Ta có 2 cách thực hiện SplashScreen trong Java 1.6 tùy vào hình thức ta deploy
-
Nếu deploy cho anh em dòng họ *nix sử dụng (Command line) thì ta bổ sung thêm tham số -splash
java -spalsh: [other param] MainClass
Còn nếu deploy bằng .jar thì bổ sung thêm dòng Splashscreen-image: vào file MANIFEST.MF (Xem phần jar deploy)
7. Xây dựng ứng dụng Java mẫu
Ta tạm chọn 1 ví dụ đơn giản nhất làm demo, đó là xây dựng ứng dụng Mã hóaBây giờ chúng ta làm từng bước
Bước 1: Requirement (Yêu cầu) Xây dựng ứng dụng có chức năng mã hóa 1 chuỗi theo thuật toán SHA-1, MD2 hoặc MD5. Có chức năng kiểm tra ngược.
Online demo: With LookAndFeel | Without LookAndFeel
http://www.pissoft.com/javavietnam/articles/javadesktop/session1/encrypt.jnlp
http://www.pissoft.com/javavietnam/articles/javadesktop/session1/no-laf-encrypt.jnlp
Bước 2: Phân tích
Bước 3: Thiết kế (Bỏ qua vì Project quá tí hon)
Bước 4: Test thiết kế và viết test case (Bỏ qua vì Project quá tí hon)
Bước 5: Code (không bỏ được)
Bước 5.1: Khởi động Eclipse, tạo project mới
-> Menu File -> New -> Project ...
Bước 5.2: Đặt tên project
Bước 5.3: Add lib, những thứ linh tinh khác
-> Add xong, nhấn Finish
Bước 5.4: Tạo thư mục src
-> Right click vào project mới tạo, chọn properties
-> Nhấn nút Add Foder -> Create New Folder -> Nhập tên folder
Bước 5.5: Tạo các class cần thiết
-> Right click vào project trên, chọn Menu New -> Class, nhập package là com.pissoft.session1, tên class là: EncryptApp, nhập xong sẽ như sau:
Thực hiện tương tự cho 2 class còn lại: EncryptFrame và GridBagLayoutEx
Khi xong, bạn thấy project có cấu trúc như sau:
Project của ta có 3 class:
EncryptApp: class chính (chứa phương thức main), class này chỉ làm nhiệm vụ setLookAndFeel và khởi tạo EncryptFrame
EncryptFrame: đây là class chứa Frame chính và những xử lý khác (tạm thời để chung)
GridBagLayoutEx: Đây là lớp kế thừa từ GridBagLayout, giúp ta thiết kế GUI nhanh hơn thui, chỉ là Uitility thôi.
Nội dung file EncryptApp.java
package com.pissoft.session1;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
public class EncryptApp { public static void main(String[] args) {
//install TinyLookAndFeel
try {UIManager.setLookAndFeel("de.muntjak.tinylookandfeel.TinyLookAndFeel");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (UnsupportedLookAndFeelException e) {
e.printStackTrace();
}
//new and show main frame
new EncryptFrame();
}
}GridBagConstraints lGridBagConstraints = new GridBagConstraints(column, row, pGridWidth, pGridHeight, pWeightX, pHeightX,
GridBagConstraints.CENTER,
GridBagConstraints.BOTH,
new Insets(1, 0, 1, 0), 0, 0);
column+=pGridWidth;
return lGridBagConstraints;
}
}
No comments:
Post a Comment