2013-07-17 15 views

Trả lời

6

đơn giản, sử dụng phương pháp này

JPasswordField jt=new JPasswordField(20); 

      // Put client property 
      jt.putClientProperty("JPasswordField.cutCopyAllowed",true); 

      add(jt); 

Theo mặc định, mật khẩu trong JPasswordField không được phép cắt/sao chép. Tất cả những gì bạn cần làm là kích hoạt chúng.

Theo bình luận về việc vô hiệu hóa dán tôi đã không tìm thấy một tài sản, nhưng tôi đã đạt được sử dụng này, (tôi không khuyên theo cách này)

jt.getActionMap().put("a",null); 
     jt.getInputMap(JComponent.WHEN_FOCUSED).put(KeyStroke.getKeyStroke("ctrl V"),"a"); 

Một cách khác, là để làm ghi đè paste() (tôi khuyên bạn nên theo cách này) trong khi tuyên bố

JPasswordField jt=new JPasswordField(20){ 
    public void paste(){} 
}; 

cập nhật: tôi hiểu lầm nhận xét. Nhưng ở trên không vô hiệu hóa dán. Tuy nhiên để vô hiệu hóa bất kỳ một trong các bản sao/cắt/dán, nó là tốt hơn nếu phương pháp cần thiết đó là để được vô hiệu hóa được ghi đè mà không thực hiện trong đó.

Nếu có cách nào tốt hơn, tôi rất muốn nghe.

+0

hoạt động như một bản hack tốt. –

+0

bạn trả lời khi bạn đặt câu hỏi lol – nachokk

+3

@nachokk ["không chỉ đơn thuần là OK để hỏi và trả lời câu hỏi của riêng bạn, nó được khuyến khích _explicitly_"] (http://blog.stackoverflow.com/2011/07/its -ok-to-ask-và-answer-của riêng bạn-câu hỏi /) – DannyMo

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