gpt4 book ai didi

java - 是否可以将 JComponent 默认设置为不可聚焦?

转载 作者:行者123 更新时间:2023-11-30 05:56:38 24 4
gpt4 key购买 nike

我知道您可以调用 JComponent.setFocusable(false) 来使 Java 组件不可聚焦。但由于我的应用程序中有很多组件我希望成为这种方式,所以我想知道是否有一种比在数十个对象中的每一个上调用它更简单的方法。就像 UIDefaults 值一样?

我正在寻找这个,因为我的应用程序全屏运行,并且 JFrame 上有一个 KeyListener ,它监听击键以触发各种事件。但我发现,每当单击 JButton 或其他添加的组件时,它都会获得焦点,并且关键事件永远不会到达 JFrame。因此,一种更优雅的方法,让单个父容器捕获关键事件,无论哪个子容器拥有焦点,也可以解决我的问题。

最佳答案

I was wondering if there is a simpler way than calling it on every one of dozens of objects.

我从来没见过。

there is a KeyListener on the JFrame that listens for key strokes to trigger various events.

不要使用 KeyListener。

相反,您可以将 JMenus 和 JMenuItems 与加速器一起使用。这种方法的好处是击键记录在菜单中。请参阅 Swing 教程中关于 How to Use Menus 的部分.

或者,如果您不喜欢菜单,那么您应该使用 Key Bindings 。即使组件没有焦点,它们也可以通过编码来工作。

关于java - 是否可以将 JComponent 默认设置为不可聚焦?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6860871/

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