Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SWT/JFace:禁用滚动表单中工具栏项的焦点_Java_Swt_Eclipse Rcp_Jface - Fatal编程技术网

Java SWT/JFace:禁用滚动表单中工具栏项的焦点

Java SWT/JFace:禁用滚动表单中工具栏项的焦点,java,swt,eclipse-rcp,jface,Java,Swt,Eclipse Rcp,Jface,我在表单编辑器页面中有一个滚动表单的实例,当我将工具栏项添加到此表单时,它总是以蓝色背景获得焦点: ... import org.eclipse.ui.forms.editor.FormPage; ... class ModelPage extends FormPage { ... @Override protected void createFormContent(IManagedForm mform) { Action action = … Scro

我在表单编辑器页面中有一个滚动表单的实例,当我将工具栏项添加到此表单时,它总是以蓝色背景获得焦点:

...
import org.eclipse.ui.forms.editor.FormPage;
...

class ModelPage extends FormPage {

  ...

  @Override
  protected void createFormContent(IManagedForm mform) {
      Action action = …
      ScrolledForm form = mform.getForm();
      IToolBarManager toolbar = form.getToolBarManager();
      toolbar.add(action);
      toolbar.update(true);
      ...
  }

  @Override
  public void setFocus() {
      // this does not work
      someText.setFocus();
  }
}
有没有一种简单的方法可以将焦点从该项目中移除?我可以通过将焦点设置为侦听器中的其他控件来实现这一点,但这不是很好。当编辑器页面被激活时,该项似乎总是获得焦点。我无法设置样式标志SWT.NO_FOCUS,因为工具栏已经由表单创建,对吗


感谢您的帮助

如果您有一个IFormPart,例如SectionPart,则覆盖setFocus方法以在一个部件控件上设置焦点应该可以工作。@greg-449非常感谢您的评论。它是一个3.x应用程序,使用兼容层在4.4平台上运行。可能与此有关。我试图覆盖FormPage的setFocus方法,但没有效果。您在哪里运行此代码?@greg-449我更新了代码示例;非常感谢。