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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将焦点从一个组件转移到另一个组件相关的知识,希望对你有一定的参考价值。

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

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

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

另一答案

你可以这样做:

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

这很好..

 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);
                            }

以上是关于将焦点从一个组件转移到另一个组件的主要内容,如果未能解决你的问题,请参考以下文章

以角度 8 将文本字段的值从一个组件传递到另一个组件

如何在颤动中将焦点转移到另一个文本表单字段

如何使用 JetpackNavigation 组件从 BottomSheetDialogFragment 导航到另一个 Fragment

使用导航从一个片段导航到另一个片段后,防止后按工作

Flutter 焦点管理 FocusScope 组件

使用导航组件从一个活动导航到另一个活动