Java TrayDialog中的SWT帮助按钮

Java TrayDialog中的SWT帮助按钮,java,eclipse,dialog,swt,jface,Java,Eclipse,Dialog,Swt,Jface,我有一个扩展TrayDialog的类,它有一个帮助按钮。我设定了以下条件: setDialogHelpAvailable(true); setHelpAvailable(true); 我找不到应该如何实现左下角的帮助按钮。我试过了 @Override protected void buttonPressed(int buttonId) { super.buttonPressed(buttonId); if(buttonId == IDialogConstants.HELP_ID

我有一个扩展TrayDialog的类,它有一个帮助按钮。我设定了以下条件:

setDialogHelpAvailable(true);
setHelpAvailable(true);
我找不到应该如何实现左下角的帮助按钮。我试过了

@Override
protected void buttonPressed(int buttonId) {
    super.buttonPressed(buttonId);
    if(buttonId == IDialogConstants.HELP_ID) {
        System.out.println("Help requested");
    }
}
但它不起作用。我已经看到了,但是我没有performHelp()方法,因为我不在向导中


我错过了什么?当按下“帮助”按钮时,感谢TrayDialog查找带有
SWT.help
侦听器的控件。它从当前关注的控件开始,并通过该控件的父控件向上移动,直到找到一个具有侦听器的控件(或耗尽控件)

您可以使用设置一个帮助侦听器,该侦听器连接到Eclipse帮助系统中的“帮助上下文”

PlatformUI.getWorkbench().getHelpSystem().setHelp(control, "context-id");

或者您可以编写自己的帮助侦听器。

我也遇到了同样的问题,只需在我的一个控件中添加一个
帮助侦听器即可解决:

Composite area.addHelpListener(new HelpListener() { 

    @Override public void helpRequested(HelpEvent e) { 
        System.out.println("This is the help info"); 
    }
});
并将以下内容添加到我的构造函数中:

setDialogHelpAvailable(true);