Tôi đã viết một giao diện người dùng SWT có chức năng chính hiển thị văn bản trong điều khiển StyledText. Tôi muốn thêm một handler cho Ctrl +F để khi tắt mà được nhấn trọng tâm được đặt thành một hộp tìm kiếm. Tôi đã thử sử dụng mã sau đây để phát hiện phím bấm.Cách phát hiện ctrl-f trong ứng dụng SWT của tôi
sWindow = new Shell();
...
sWindow.getDisplay().addFilter(SWT.KeyDown, new Listener()
{
@Override
public void handleEvent(Event e)
{
System.out.println("Filter-ctrl: " + SWT.CTRL);
System.out.println("Filter-mask: " + e.stateMask);
System.out.println("Filter-char: " + e.character);
}
});
Tôi đã mong rằng khi tôi ép Ctrl +f tôi sẽ thấy kết quả như sau:
Filter-ctrl: 262144
Filter-mask: 262144
Filter-char: f
Tuy nhiên, trong thực tế tôi thực sự thấy như sau.
Filter-ctrl: 262144
Filter-mask: 262144
Filter-char: <unprintable char - displayed as a box in eclipse console>
Tôi có hai câu hỏi:
- là Display.addFilter (...) là cách tốt nhất để thêm một phím tắt toàn cầu? Tôi đã thử Display.addListener (...) nhưng điều này không nhận được bất kỳ sự kiện nào cả.
- Tại sao tôi không nhận được nhân vật ép khi tôi đang giữ phím Ctrl ? Khi tôi giữ phím alt hoặc shift, tôi nhận được mặt nạ mong đợi và nhân vật được ép.
Đây là câu trả lời tuyệt vời - Tôi hiện đã có phím tắt hoạt động. Cảm ơn! Tôi sẽ cố đọc tài liệu tốt hơn vào lần sau! – mchr
Điều đó đã giải quyết được vấn đề của tôi, nhờ lời giải thích rõ ràng! +1 –
cách chúng tôi có thể ghi đè lối tắt hệ thống như ctrl + c bằng cách thêm bộ lọc như thế này? – Fahad