将焦点从一个组件转移到另一个组件

问题描述 投票:0回答:3

当我(程序)遇到某种情况时,如何将焦点从一个组件转移到另一个组件?就像焦点在第一个文本字段中移动到下一个文本字段时,字长达到3。

java swing focus jcomponent setfocus
3个回答
2
投票
  1. 订阅第一部分的keyDown活动。
  2. 如果text length == 3将焦点转移到另一个组件。不要忘记撤消当前键的效果
  3. 我想focus()requestFocusInWindow()方法可以使用。不记得确切的名字。

同样,可以订阅TextChanged事件。因此,添加ASA 3字符,使用步骤3移动焦点。


0
投票

你可以这样做:

if(jTextField1.getText().length() == 2 ){ // if the req. length is 3
        // shift the focus to next text field
        jTextField2.requestFocusInWindow();
    }

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);
                            }
© www.soinside.com 2019 - 2024. All rights reserved.