3

我的布局像:

在此处输入图像描述

当我第一次按 TAB 按钮时,我想在公司名称 Texfield 上获得焦点,但现在我在添加按钮上获得焦点,我该如何管理它?

我尝试像这样的代码

    ChangeFocus(mTextFieldCompanyName, mTextAreaAboutUs);
    ChangeFocus(mTextAreaAboutUs, mTextAreaContactUs);
    ChangeFocus(mTextAreaContactUs, mButtonVideo);
    ChangeFocus(mButtonVideo, mButtonImage);
    ChangeFocus(mButtonImage, mButtonSave);
    public void ChangeFocus(Control mControlFrom,final Control mControlTo)
    {

   mControlFrom.addEventHandler(KeyEvent.KEY_PRESSED, new EventHandler<KeyEvent>() {

         @Override
         public void handle(KeyEvent event)
         {
             if (event.getCode() == KeyCode.TAB)
             {
                System.out.println("TAB pressed");
                mControlTo.requestFocus();
                event.consume(); // do nothing
         }
       }
     });

     }
4

1 回答 1

7

尝试将您的 mTextFieldCompanyName 包装在里面Platform.runLater()

Platform.runLater(new Runnable() {
    @Override
    public void run() {
        mTextFieldCompanyName.requestFocus();  
    }   
});

希望能帮助到你 :)

于 2013-02-06T11:13:36.713 回答