Tôi có một số JPanel
bên trong một JFrame
. Tôi đã đăng ký KeyListener
, dựa trên đó tôi muốn cập nhật JPanel
. Vấn đề tôi gặp phải là tôi không thể tập trung vào số JPanel
và do đó, KeyListener
của tôi sẽ không hoạt động. Tôi đã biết rằng KeyListener
là chức năng vì tôi đã đăng ký nó với JFrame
và nó hoạt động tốt. Mã của tôi có dạng như sau:Lấy tiêu điểm trên JPanel
myFrame.setFocusable(false);
myPanel.setFocusable(true);
myPanel.addKeyListener(myKL);
myFrame.add(myPanel);
Có ai gặp phải vấn đề như thế này trước đây không? Có điều gì tôi thiếu trong trường hợp này?
P .: Tôi không có bất kỳ thành phần bên trong JPanel
Tôi chỉ vẽ một hình ảnh trên nền, vì vậy tôi cần tập trung để được trên chính JPanel và không phải trên một cái gì đó bên trong nó.
Hmm, với việc thêm myPanel.requestFocus() hoạt động này đối với tôi. Bạn đang chạy phiên bản Java nào? –
Có thể đăng một SSCCE (ví dụ đơn giản chứa compilable) mà tái tạo này. Điều đó sẽ cung cấp cho người khác một cái gì đó để làm việc w/để giúp đỡ. Tôi cũng đã thông báo w/một vấn đề bằng cách thu hẹp nó xuống phạm vi nhỏ nhất, đôi khi tôi có thể tự tìm ra giải pháp. – broschb