在 JPanel 上使用 KeyListener 時,監聽器可能無法觸發按鍵事件。當依賴箭頭鍵進行使用者輸入時,這可能會妨礙功能。儘管新增了偵聽器、設定了可聚焦性並請求焦點,偵聽器仍然處於非活動狀態。此外,使用鍵綁定的替代方法也被證明是無效的。
當按鍵綁定無法運作時,請考慮以下事項:
<code class="java">import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import javax.swing.JPanel; import javax.swing.KeyStroke; public class GamePanel extends JPanel implements ActionListener, KeyListener { // Initialize keybindings private void setupKeyBindings() { // Add a key binding for the left arrow key getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_LEFT, 0), "Left"); // Add an action listener for the "Left" action getActionMap().put("Left", new leftAction()); } // Implementation details for the leftAction class... @Override public void keyTyped(KeyEvent e) {} @Override public void keyPressed(KeyEvent e) {} @Override public void keyReleased(KeyEvent e) {} @Override public void actionPerformed(ActionEvent e) { // Perform additional game actions based on the event } }</code>
透過尋址通過組件的可聚焦性並採取正確的鍵綁定配置,您可以確保KeyListener 或鍵綁定在JPanel 中按預期運行。查閱有關 KeyListener 和鍵綁定的文件以獲得進一步的見解也是有益的。
以上是為什麼我的 KeyListener 不能在 JPanel 上運作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!