2013-11-03 28 views
12

Vì vậy, tôi đã làm việc trên Trình kiểm tra Độ mạnh Mật khẩu và cách hoạt động là người dùng nhập một số văn bản ngẫu nhiên vào một trường văn bản và sau đó phản hồi trực quan tức thời (phân tích các điểm) được hiển thị. Tôi cũng đã thêm một hộp kiểm đang được chọn, nên ẩn mật khẩu, tức là thay thế tất cả các ký tự bằng dấu sao, trong khi vẫn giữ nguyên văn bản nhập thực tế của người dùng. Trình nghe tài liệu đang được sử dụng để theo dõi các thay đổi bên trong trường văn bản. (mỗi char trên mục được phân tích và sau đó ghi)Ẩn/Hiện Mật khẩu trong JTextFIeld (Java Swing)

Vì vậy, câu hỏi của tôi là, làm thế nào chính xác để tôi che dấu đầu vào của người dùng bằng dấu hoa thị bảo tồn giá trị ban đầu của nó?

Đây là những gì GUI trông giống như:

http://speedcap.net/sharing/screen.php?id=files/51/2f/512f9abb3f92a25add7c593e9d80e9e4.png

Trả lời

25

Làm thế nào chính xác để tôi che đầu vào người dùng với dấu hoa thị bảo tồn giá trị ban đầu của nó?

Sử dụng JPasswordField có chức năng đẹp jPasswordField.getPassword(); để nhận mật khẩu là char[] để làm việc.

  • Sử dụng jPasswordField1.setEchoChar('*') để che ký tự mật khẩu bằng *.
  • Nếu bạn muốn xem giá trị bạn đang chèn sử dụng jPasswordField1.setEchoChar((char)0); Đặt giá trị 0 cho biết bạn muốn xem văn bản khi được nhập, tương tự như hành vi của tiêu chuẩn JTextField.

Hướng dẫn và tham khảo:

  1. How to use Password Fields
  2. setEchoChar(char)
+0

Đặt nhân vật echo để 0 để vô hiệu hóa mặt nạ: 'jPasswordField1 .setEchoChar ('\ u0000') '. –

+0

@ Sage, bất cứ khi nào tôi nhấp vào hộp kiểm ẩn, trường văn bản mất tiêu điểm và sau đó tôi phải nhấp lại vào trường văn bản để thay đổi diễn ra. Tôi đã sử dụng chức năng requestFocus trên nó để lấy lại tiêu điểm, nhưng nó dường như không hoạt động. Tôi có thể làm gì sai? –

+0

@ EnTHuSiAsTx94, vui lòng đăng câu hỏi khác với mô tả ngắn gọn để tôi và những người có kinh nghiệm khác từ cộng đồng có thể giúp bạn, bạn cũng nên đính kèm một ví dụ ngắn và đơn giản có thể tạo ra vấn đề của mình:) \ – Sage

0

nhờ ok cho tutorialnya,

và ex,

hành động chechbox/double click

private void Xem tất actionPerformed (java.awt.event.ActionEvent evt) {

if (lihat.isSelected()) 
     { 
      password.setEchoChar((char)0); //password = JPasswordField 
     } 
    else 
     { 

      password.setEchoChar('*'); 
     } 

}

+0

Chào mừng bạn đến với Stack Overflow! Điều này thực sự có vẻ giống như một bình luận, không phải là một câu trả lời. Với một đại diện nhiều hơn một chút, [bạn sẽ có thể gửi bình luận] (http://stackoverflow.com/privileges/comment). –

Các vấn đề liên quan