Tôi có một mục menu, "đổi tên", mà F2 được đặt làm bộ gia tốc. Thật vậy khi trình đơn được hiển thị có một dấu "F2" nhỏ bên cạnh "đổi tên".Swing: Đặt khóa chức năng (F2) làm máy gia tốc
Đáng buồn thay, điều này không hiệu quả. Máy gia tốc này không gây ra phản ứng. Khi tôi thay đổi máy gia tốc thành CTRL + F2 - nó hoạt động.
Dường như tôi nên sử dụng InpoutMpa/ActionMap. Vấn đề với điều đó là tôi muốn nó hoạt động ở mọi nơi trong ứng dụng nên tôi đang cố gắng kết hợp nó với JFrame cấp cao nhất. Nhưng, JFrame không có phương thức getInputMap().
Bị mất.
[Added]
ks = KeyStroke.getKeyStroke(KeyEvent.VK_F2, 0);
JMenuItem mi = new JMenuItem("Rename");
mi.setAccelerator(ks);
mi.addActionListener(action);
Xin chỉ cho chúng ta mã hóa bạn sử dụng để thiết lập các gia tốc! –
Có thể trình quản lý hệ điều hành/cửa sổ của bạn "tiêu thụ" phím tắt để nó thực sự không bao giờ đến ứng dụng Swing của bạn (ví dụ: vì F2 được ánh xạ tới một thứ gì đó đặc biệt và Ctrl-F2 không)? – netzwerg