我的应用程序中有一个我无法找到的错误。
我有一些可选择和可调整大小的 JPanel ,选择时显示边框。对于其中一些人来说,边界在移动后消失了,显然没有任何理由。从现在开始,我在我的应用程序中没有发现任何错误(没有其他组件正在请求或获得焦点),但我注意到当我选择的组件失去焦点时,JToolbar 获得它。
所以我的问题是,在哪些情况下(可能涉及 MouseEvents),JToolbar 组件是否请求获得焦点?
或者,是否有禁用 JToolbar 以请求焦点或知道哪个组件是当前焦点所有者?
我认为很难防止获得焦点。在某些情况下,例如当焦点必须离开面板时,工具栏上的可编辑 JCombobox。public Component getOppositeComponent()
如果返回面板的一个孩子边框应该保留,我会玩 FocusEvent 。
我终于解决了我的问题。我注意到将焦点组件设置为不可见,会自动释放焦点。JToolbar 没有直接参与这个过程,但它是组件层次结构中直接向上的组件,因此它失去了焦点。因此,如果我必须将一个组件设置为不可见然后再次可见,它必须再次明确获得焦点。