gpt4 book ai didi

java - Swing 中的可链接键盘处理程序

转载 作者:行者123 更新时间:2023-12-02 08:31:54 25 4
gpt4 key购买 nike

我有一个从 JPanel 子类化的自定义组件,带有键盘处理程序。我的主应用程序将其嵌入到另一个 JPanel 中。现在我希望父 JPanel 也响应击键,因为只有当组件获得焦点时才需要执行一些操作,但这些操作适用于整个应用程序,而不是该组件(例如,当我按 Ctrl- R 我想要一个单独的状态窗口来刷新自身,但前提是我的组件具有键盘焦点。)

现在,我通过显式向构造函数传递一个处理程序来完成此操作,该处理程序在完成时由其 KeyListener 调用,但使用 swing 的 native 处理方式(如果有的话)可能会更清晰。是否支持这种链接容器层次结构的处理程序?我查看了 KeyboardFocusManager 和 KeyEventHandler,但它们似乎是全局范围的,而我想要的东西仅限于单个容器,仅当其子级之一具有键盘焦点时才会触发。

最佳答案

您还可以尝试向组件添加 key 绑定(bind)器。

Here's a tutorial这将向您展示如何使用键绑定(bind)。键绑定(bind)允许您指定特定组件在具有某种焦点时要执行的操作,并且可以在扩展 JComponent 的任何对象上使用。这可以在所有 JComponent 中更广泛地使用,并支持不同的焦点类型,例如当组件单独获得焦点或其窗口获得焦点时。添加和删​​除关键监听器可能会导致小错误潜入您的应用程序,特别是如果焦点监听器失败,因此如果您选择该路线,请务必小心。

关于java - Swing 中的可链接键盘处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3132892/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com