getActiveWorkbenchWindow() return null 解决办法

本文介绍了一种在非UI线程中获取Eclipse工作台活动窗口的方法。通过使用PlatformUI提供的API并结合异步执行机制,可以确保即使在非用户界面线程中也能正确获取到当前活动的工作台窗口。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. /** 
  2.      * Returns the currently active window for this workbench (if any). Returns 
  3.      * <code>null</code> if there is no active workbench window. Returns 
  4.      * <code>null</code> if called from a non-UI thread. 
  5.      *  
  6.      * @return the active workbench window, or <code>null</code> if there is 
  7.      *         no active workbench window or if called from a non-UI thread 
  8.      */  
  9.     public IWorkbenchWindow getActiveWorkbenchWindow();  

调调用的时候不在UI线程中,所以会返回空,可采用如下办法解决

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {  
  2.                 public void run() {  
  3.                     IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();  
  4.                     System.out.println(window);  
  5.                 //做想要做的事情吧。  
  6.               
  7.                 }  
  8.             });  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值