2011-07-14 61 views

回答

6

有可能是一個較短的方式,但是這個代碼應該這樣做:

IWorkbenchPage activePage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); 
String name = activePage.getActiveEditor().getEditorInput().getName(); 

當然,一定要檢查可能存在的空值等

編輯:從UI線程運行此。例如:

 final String[] name = new String[1]; 
     UIJob job = new UIJob("Get active editor") //$NON-NLS-1$ 
     { 
      public IStatus runInUIThread(IProgressMonitor monitor) 
      { 
       try 
       { 
        IWorkbenchPage activePage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); 
        name[0] = activePage.getActiveEditor().getEditorInput().getName(); 
       } 
       catch (Exception e) 
       { 
        // return some other status 
       } 

       return Status.OK_STATUS; 
      } 
     }; 
     job.schedule(); 
     job.join(); 
     System.out.println(name[0]); 
+0

我已經試過上面的代碼。它在上面的代碼的第一行顯示空指針異常。我不確定它爲什麼會給出這樣的錯誤。 – user844066

+0

嘗試從UI線程運行它。使用UIJob的一個實例並安排它。 – sgibly

+0

編輯了上面的代碼,告訴你如何去做。 – sgibly