在焦点转移期间,有没有办法验证依赖字段,以便JComponents(a,b,c)之间的焦点转移没有被否决,但转移到某些外部元素(例如,d)的焦点转移被否决?< / p>
做这种事的最自然的地方似乎是InputVerifier.shouldYieldFocus()
;但是,我当时没有办法获得(下一个)焦点目标。
答案 0 :(得分:4)
InputVerifier机制不支持。并且可能不应该处于该级别的粒度,因为它可能导致将焦点放在具有无效数据的d中。
假设一个InputVerifier知道相反的组件(可能是下一个focusOwner)并且其数据无效
(与Rob的建议相同的整体效果,顺便说一句,除了a的InputVerifier永远不会运行)
总的来说,内置的验证支持不是很强大 - 开发人员还有很多工作要做。你需要做的一些事情
使用像f.i这样的框架。 JGoodies验证可能更容易。
答案 1 :(得分:2)
对于依赖组件,您应该可以使用:
component.setVerifyInputWhenFocusTarget( false );