2008-09-17 31 views
16

Tôi đang cố gắng xây dựng trường tên người dùng/mật khẩu tốt hơn cho nơi làm việc của mình và muốn có thể khiếu nại khi họ bật khóa mũ.Làm cách nào để phát hiện xem khóa mũ có được bật trong Swing không?

Điều này có khả thi không? Và nếu vậy tôi muốn phát hiện nó trước khi khách hàng gõ chữ cái đầu tiên của họ.

Có cách nào không phải là nền tảng cụ thể để thực hiện việc này không?

Trả lời

24

Hãy thử điều này, từ java.awt.Toolkit, trả về một boolean:

Toolkit.getDefaultToolkit().getLockingKeyState(KeyEvent.VK_CAPS_LOCK) 
+0

Ngắn gọn và chính xác! – StephMW

+1

Ngoại trừ việc nó không hoạt động trên tất cả các nền tảng. Ví dụ, nó ném một UnsupportedException dưới OpenJDK-6 trong Linux. :( –

+0

JDK 1.7 tôi có lỗi thời gian biên dịch với mã khóa này – Johnydep

1

Ngoài câu trả lời của Nick, để phản ứng với tình trạng này trước khi người dùng nhấn một phím, bạn có thể nghe sự kiện lấy nét của thành phần nhập văn bản của bạn và kiểm tra caps-lock khi thành phần đó nhận được tiêu điểm.

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