-1

我试图让我的键盘输入工作,但它没有检测到任何东西 - 可能是因为我正在使用 CardLayout 并且当我调用该show()函数时我没有正确设置焦点。

目前,它看起来像这样。

    containerPanel.add(new GameArea(), "newGameArea");
        CardLayout cl = (CardLayout)(containerPanel.getLayout());
        //containerPanel.requestFocusInWindow();
        cl.show(containerPanel, "newGameArea");

任何帮助将不胜感激。

4

1 回答 1

3
  • focus 是异步的,那么你必须将 requestFocus 包装到 invokeLater

  • 这应该适用于没有添加另一个 Listenet take Focus 的情况

  • 不要对 Swing JComponents 使用 KeyListener,而是使用 KeyBindings

于 2012-05-30T14:17:31.760 回答