【问题标题】:How To Start A JPanel After Switching切换后如何启动 JPanel
【发布时间】:2011-11-05 13:57:20
【问题描述】:

我正在创建一个带有菜单和实际游戏本身的 Pong 克隆。我正在使用CardLayout 在两个JPanels 之间切换。

但是,当我从菜单切换到棋盘(或游戏区)时,棋盘就坐在那里,不接受我的键盘输入。如何启动或启动按键监听?

源码https://cg2916@github.com/cg2916/Pong.git

【问题讨论】:

  • 其实我很傻。我刚刚意识到我需要请求焦点。
  • 源代码应该发布在这个论坛。 SSCCE 应该简短明了。

标签: java swing keylistener key-bindings cardlayout


【解决方案1】:

答案(如之前向您推荐的):不要使用 KeyListener。使用键绑定。

【讨论】:

  • @Cg2916:那么焦点应该无关紧要。您上面的代码链接无效。即便如此,最好创建并发布一个小型测试程序来编译、运行和演示问题,sscce。即使您不在这里发布它也会对您有益,因为它会极大地简化您的调试。
【解决方案2】:

requestFocusInWindow() 应该可以解决问题。

【讨论】:

    【解决方案3】:

    对于 CardLayout,监听器应该有这些代码

     CardLayout card=(CardLayout) JPanel_with_cardLayout.getLayout();
     card.show(JPanel_with_cardLayout,"cardname of card you want to switch");
    

    示例:

    CardLayout card=(CardLayout) JPanel2.getLayout();
    card.show(JPanel2,"card4");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-13
      • 1970-01-01
      • 2014-02-22
      • 1970-01-01
      • 2015-06-17
      • 2019-06-07
      • 2012-12-09
      • 2012-01-01
      相关资源
      最近更新 更多