Cấp bậc tác giả:

JAVA

Sử dụng Password Field như thế nào?

Được viết bởi QuangIT ngày 11/03/2014 lúc 08:06 AM
Lớp JPasswordField là lớp con của JTextField, cung cấp các trường kiểu text dành cho mật khẩu. Vì lý do bảo mật, trường mật khẩu không hiển thị các ký tự người dùng nhập vào...
  • 0
  • 2769
Tải tệp tin: Click ở đây

Sử dụng Password Field như thế nào?


Lớp JPasswordField là lớp con của JTextField, cung cấp các trường kiểu text dành cho mật khẩu. Vì lý do bảo mật, trường mật khẩu không hiển thị các ký tự người dùng nhập vào. Thay vào đó, trường này sẽ hiển thị các ký tự khác nhau từ một kiểu duy nhất, như dấu hoa thị '*'. Đó là biện pháp phòng ngừa hữu hiệu, trường mật khẩu lưu trữ giá trị của nó như một mảng các ký tự, chứ không phải là chuỗi. Trường mật khẩu sẽ bắn một sự kiện khi người dùng nhập văn bạn hoàn tất và nhấn vào nút Enter.

Đây là hình ảnh của demo mở ra cửa sổ nhỏ nhắc nhở người dùng nhập mật khẩu.

PasswordDemo.png

Mật khẩu là "DOTNET". Mật khẩu này là ví dụ sử dụng phương thức xác thực an toàn. Bạn có thể tìm thấy mã này trong file tải đính kèm. Đây là mã tạo ra và thiết lập các trường mật khẩu

passwordField = new JPasswordField(10);
passwordField.setActionCommand(OK);
passwordField.addActionListener(this);

Đối số sẽ thông qua hàm dựng JPasswordField cho biết kích thước trong trường hợp này là 10. Theo mặc định, trường mật khẩu sẽ chỉ hiển thị dấu chấm vào mỗi ký tự gõ. Nếu bạn muốn thay đổi các ký tự, gọi phương thức setEchoChar. Các mã sau sẽ cho biết thêm hành động listener đến trường mật khẩu, nó sẽ kiểm tra giá trị nhập vào bởi người dùng. Đây là phương thức được sử dụng để thực hiện hành động listener của actionPerformed

public void actionPerformed(ActionEvent e) {
    String cmd = e.getActionCommand();

    if (OK.equals(cmd)) { //Process the password.
        char[] input = passwordField.getPassword();
        if (isPasswordCorrect(input)) {
            JOptionPane.showMessageDialog(controllingFrame,
                "Success! You typed the right password.");
        } else {
            JOptionPane.showMessageDialog(controllingFrame,
                "Invalid password. Try again.",
                "Error Message",
                JOptionPane.ERROR_MESSAGE);
        }

        //Zero out the possible password, for security.
        Arrays.fill(input, '0');

        passwordField.selectAll();
        resetFocus();
    } else ...//handle the Help button...
}

Lưu ý: Để tăng cường bảo mật, khi kết thúc trả lại ký tự bởi phương thức getpassword, bạn nên đặt mỗi phần tử của nó là 0. Đoạn mã trên cho thấy cách làm như vậy

invalid_password.jpg

Chương trình sử dụng trường mật khẩu sẽ cần xác nhận mật khẩu trước khi hoàn thành bất cứ hành động nào đều đòi hỏi phải có mật khẩu. Chương trình này gọi phương thức private isPasswordCorrect, nhằm so sánh giá trị trả về của phương thức getPassword đến một giá trĩ được lưu trữ trong mảng ký tự. Đây là dòng code của nó:

private static boolean isPasswordCorrect(char[] input) {
    boolean isCorrect = true;
    char[] correctPassword = { 'D', 'O', 'T', 'N', 'E', 'T' };

    if (input.length != correctPassword.length) {
        isCorrect = false;
    } else {
        isCorrect = Arrays.equals (input, correctPassword);
    }

    //Zero out the password.
    Arrays.fill(correctPassword,'0');

    return isCorrect;
}

success_password.jpg

Password Field API

Theo sau bảng danh sách dưới đây là các thành phần thường sử dụng các hàm dựng và phương thức JPasswordField.

Hàm dựng hoặc phương thứcMục đích
JPasswordField()
JPasswordField(String)
JPasswordField(String, int)
JPasswordField(int)
JPasswordField(Document, String, int)
Tạo ra trường mật khẩu. Đối số int xác định đối số với độ rộng của cột. Đối số string xác định văn bản của trường này. Đối số Document cung cấp modal tùy chọn cho trường này
char[] getPassword()Trả về mật khẩu như mảng các ký tự
void setEchoChar(char)
char getEchoChar()
Thiết lập hoặc gán ký tự hiển thị thay vì các kiểu ký tự bởi người dùng
void addActionListener(ActionListener)
void removeActionListener(ActionListener)
(được định nghĩa trong JTextField)
Thêm hoặc Xóa action listener
void selectAll()
(được định nghĩa trong JTextComponent )
Chọn tất cả các ký tự trong trường mật khẩu

help_password.jpg

Có thể tải ví dụ này trong bài này

Nguồn bài viết: DOTNET.VN

BÌNH LUẬN BÀI VIẾT

Bài viết mới nhất

LIKE BOX

Bài viết được xem nhiều nhất

HỌC HTML