当前位置: 首页 > 知识库问答 >
问题:

Java JPanel移动(keylistener)不工作

方宏富
2023-03-14

额外信息:我是用BlueJ来从中,用4个类在basic程序中回答我的问题。我意识到很多人在互联网上说要使用键绑定而不是KeyListener,但我现在不明白键绑定...

---遵循装满鳗鱼的气垫船的建议,我将尝试使用键绑定。---

所以Keybindings有两个“命令”来工作:输入和操作。

protected void addBindings() {
   int condition = JComponent.WHEN_IN_FOCUSED_WINDOW;
   InputMap inputMap = getInputMap(condition); // What does this do?

   KeyStroke key = KeyStroke.getKeyStroke(KeyEvent.VK_UP, Event.KEY_PRESS);
   inputMap.put(key, move(0, 2));
protected void beweeg (int dx, int dy)
{
    view.x = view.x + dx;
    view.y = view.y + dy;
}

共有1个答案

唐渊
2023-03-14

你问:

当尝试这个时,我得到:“不能找到符号-方法getInputMap(int)”我需要在某个地方声明它吗?

必须对从JComponent派生的对象或它的一个子对象(如JPanel)调用此方法。此错误消息意味着您在不扩展JComponent或其子级的类(如JPanel)内部进行此调用。一个可能的解决方案是在JPanel对象上调用要附加绑定的对象上的方法。

 类似资料:
  • 问题内容: 由于某种原因,我的KeyListener只是不响应KeyPressed事件。 如果有关系,我使用的是Ubuntu 12.04。每当按下某个键时,它应该打印“ Key Pressed”,但不是这样。 这是代码: 问题答案: 致电(与您的问题无关,但稍后会解决一些问题) 使组件“具有焦点”- 使用键绑定过 使用过… 从Java文档 因为此方法的焦点行为取决于平台,所以强烈建议开发人员在可能

  • 如何将dhtmlxGantt配置为在将任务移出可见区域(左、右)时滚动。例如,我尝试在此示例中在4月20日之后移动任务“营销” http://dhtmlx.com/docs/products/dhtmlxGantt/01_basic.html 它不工作,所以没有水平自动滚动条。 滚动的第二个例子 http://dhtmlx.com/docs/products/dhtmlxGantt/05_crit

  • GraphRequest请求=GraphRequest。newGraphPathRequest(AccessToken.getCurrentAccessToken(),“/我/朋友”,new GraphRequest。Callback(){@Override public void onCompleted(GraphResponse response){//在此处插入代码 } 这是我的男拳。xml

  • 我正在我的应用程序中实现折叠工具栏,它应该没问题,但栏不受限制..不动不做任何!!! 这是我的布局. xml 这是我的活动 请告诉我为什么,提前谢谢! 更新:我已经解决了NestedScrollView的问题,我做了如下操作:

  • 我使用的是wordpress主题突出。它已经有了针对移动响应的媒体查询,这些查询来自: 正如你所见,它涵盖了从手机到平板电脑的宽度。我们的开发人员不希望在其所在的全局css中更改此默认代码,但我们需要使该站点在单个页面的css上的单独查询中响应手机和平板电脑。我希望手机的最大宽度为480px,平板电脑的最大宽度为1024,桌面电脑的最大宽度为2000。 我应该提出的三个媒体查询的正确顺序和语法是什

  • 我在stackoverflow中搜索了一个类似的问题,但没有找到,不同情况下的其他可能解决方案也不适合我。我打开这个问题是因为我找不到这个问题的解决方案,也找不到这个问题的类似问题。 我尝试过使用Android Room的自动迁移功能,但它从未正常工作。 目前的情况如下: 我有一个数据库版本1 我想向一个表添加一个新列,这是我想做的唯一修改。此列将保存字符串值,而不保存其他任何内容。 此新列将仅存