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我更新了代码示例;非常感谢。