Java不关注任何组件

Posted

技术标签:

【中文标题】Java不关注任何组件【英文标题】:Java not focusing any component 【发布时间】:2015-02-06 10:47:45 【问题描述】:

我使用了c1.setFocusable(false),这样我的复选框 c1 就没有如图所示聚焦,然后,焦点转到下一个复选框 c2,我再次使用 c2.setFocusable(false),它继续到所有复选框。即使它没有找到,它也会继续到下一个 JTextField。有没有办法不让焦点转到某事上,而不是将焦点设置为我所有的众多组件?

【问题讨论】:

我不确定我是否完全理解您想要实现的目标。正在设置自定义焦点遍历策略(如 here 所述)您正在寻找什么? 我有一些组件。第一个是在一些灰色边框中,也就是可聚焦的,但我不希望它或它们中的任何一个是可聚焦的。所以,如果我使用 setFocusable(false),焦点转到下一个,依此类推。 .. 但是拥有一个无法获得焦点的可编辑组件的目的是什么?用户应该用它做什么?如果要禁用某个组件,请使用setEnabled( false ) 添加了一张图片,我怎样才能摆脱那个灰色边框的东西? :O @Robin 我认为这只是关于虚线边界 【参考方案1】:

我怎样才能摆脱那个灰色边框的东西?

您为什么要这样做?那个“灰色边框的东西”是焦点指示器。它用于向用户提供信息,以便用户知道哪个组件具有焦点。

如果你真的想迷惑用户并让他们猜测哪个组件有焦点,那么你可以使用:

button.setFocusPainted( false );

【讨论】:

“方法 setFocusPainted(boolean) 未定义类型 Checkbox”,如果我将其更改为 setFocusable,我会回到最初的问题 @GiannisThanasiou,当然是。阅读 API。它继承自 AbstractButton。 if I change it to setFocusable I go back to my initial question - 和其他评论过的人一样,我不明白这个问题,也没有尝试回答。我直接回答了“灰色边框的东西”。

以上是关于Java不关注任何组件的主要内容,如果未能解决你的问题,请参考以下文章

使用 react 功能组件自动关注 reactstrap 警报

在加载面板时关注组件

关注15个顶级Java多线程面试题及回答

vue入门教程之-组件

java 11 值得关注的新特性

输出当前关注的组件信息