在javafx的第一个控件获得焦点

时间:2013-01-11 10:20:45

标签: java javafx

我的布局如:

enter image description here

当我第一次按下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
         }
       }
     });

     }

1 个答案:

答案 0 :(得分:6)

尝试将mTextFieldCompanyName包装在Platform.runLater()

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

希望有所帮助:)