我如何知道用户何时最小化/最大化Eclipse?

时间:2008-10-27 19:13:47

标签: eclipse

我需要回应最小化/最大化Eclipse窗口的事件。我该怎么做?

2 个答案:

答案 0 :(得分:1)

我可以建议一种方法:你可以为它写一个插件 例如,看到这个改进的“教程”,我做了它,尝试它适用于Ganymede。在最终的Shell变量上有点难看,但是有效。如果你知道更好的解决方案只是拍:) ((实际上有一种方法:扩展自己的ControlListener类,但需要更多编码:))

  1. 创建一个新的插件项目,根据需要命名,从名为:Hello World Command
  2. 的模板创建它
  3. 打开SampleHandler类,然后用此代码替换execute()函数。

    public Object execute(ExecutionEvent event) throws ExecutionException {
            IWorkbenchWindow window = HandlerUtil
                    .getActiveWorkbenchWindowChecked(event);
            final Shell s = window.getShell();
    
    
    window.getShell().addControlListener(new ControlListener() {
    
            @Override
            public void controlMoved(ControlEvent e) {
                // TODO Auto-generated method stub
    
            }
    
            @Override
            public void controlResized(ControlEvent e) {
                MessageDialog.openInformation(s,
                        "WindowEventHandler Plug-in", "RESIZED: "
                                + e.toString() + "\nHello, Eclipse world");
            }
    
        });
        MessageDialog.openInformation(window.getShell(),
                "WindowEventHandler Plug-in",
                "Hello, Eclipse world, resize will be taken care of.");
    
        return null;
    }
    
  4. 现在。启动项目(Run As-> Eclipse应用程序),然后在工具栏上显示一个Eclipse按钮。点击它!它触发上面代码的运行,其中的重点是window.getShell()返回主窗口组件,因此您可以向其添加侦听器。

  5. 如果您希望它自动运行,而不仅仅是按钮,您必须找到一个插件,其中入口点连接到应用程序的开头。

    希望这有帮助。

    b

答案 1 :(得分:1)

找到了一种轻松实现的方法:您必须创建ShellListenerShellAdapter,其中包含在对图标化,去图标化,激活,停用和关闭外壳时调用的方法。

创建后,将其添加为具有以下行的侦听器:

int i;

PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell().addShellListener( yourListenerHere);

如果您从shell的侦听器列表中删除它,请确保Workbench,ActiveWorkbnchWindow和Shell不为空。