当我(程序)遇到某种情况时,如何将焦点从一个组件转移到另一个组件?就像焦点在第一个文本字段中移动到下一个文本字段时,字长达到3。
答案 0 :(得分:2)
订阅第一个组件的keyDown
活动。
如果text length == 3
将焦点转移到另一个组件。不要忘记撤消当前按键的影响
我猜focus()
或requestFocusInWindow()
方法可以使用。不记得确切的名字。
同样,可以订阅TextChanged
事件。因此,添加ASA 3字符,使用步骤3移动焦点。
答案 1 :(得分:0)
你可以这样做:
if(jTextField1.getText().length() == 2 ){ // if the req. length is 3
// shift the focus to next text field
jTextField2.requestFocusInWindow();
}
答案 2 :(得分:0)
效果很好..
Component currentFocusOwner = KeyboardFocusManager.getCurrentKeyboardFocusManager().getFocusOwner();
FocusEvent focusLostEvent = new FocusEvent(currentFocusOwner, 1005, true, destinationComponent);
FocusEvent focusGainEvent = new FocusEvent(destinationComponent, 1004, true, currentFocusOwner);
try
{
currentFocusOwner.dispatchEvent(focusLostEvent);
destinationComponent.dispatchEvent(focusGainEvent);
}
catch(Exception e)
{
Logger.logExceptionMessage(e);
}