簡體   English   中英

在將Eclipse中的AbstractDecoratedTextEditor添加到多頁編輯器中后,NPE

[英]NPE after adding AbstractDecoratedTextEditor to a Multipage editor in Eclipse

我正在創建一個簡單的Eclipse編輯器,該編輯器包含兩頁,其中之一是從AbstractDecoratedTextEditor擴展的編輯器,然后在我的多頁編輯器類中添加如下編輯器:

MyEditor myEditor = new MyEditor();
addPage(myEditor, myEditor.getEditorInput());

啟動應用程序時,編輯器如下所示: 在此處輸入圖片說明

這是我的課:

public class MyEditor extends AbstractDecoratedTextEditor {

    public MyEditor() {
        setSourceViewerConfiguration(new SourceViewerConfiguration());
        setDocumentProvider(new FileDocumentProvider());
    }

    @Override
    protected boolean isLineNumberRulerVisible() {
        return true;
    } 

    public void init(IEditorSite site, IEditorInput input) {
       setSite(site);
       setInput(input);
    }
}

這是日志:

java.lang.NullPointerException
    at org.eclipse.ui.texteditor.AddMarkerAction.getResource(AddMarkerAction.java:336)
    at org.eclipse.ui.texteditor.AddMarkerAction.update(AddMarkerAction.java:162)
    at org.eclipse.ui.texteditor.TextEditorAction.<init>(TextEditorAction.java:49)
    at org.eclipse.ui.texteditor.AddMarkerAction.<init>(AddMarkerAction.java:96)
    at org.eclipse.ui.texteditor.AbstractDecoratedTextEditor.createActions(AbstractDecoratedTextEditor.java:1153)
    at org.eclipse.ui.texteditor.AbstractTextEditor.createPartControl(AbstractTextEditor.java:3576)
    at org.eclipse.ui.texteditor.StatusTextEditor.createPartControl(StatusTextEditor.java:54)
    at org.eclipse.ui.texteditor.AbstractDecoratedTextEditor.createPartControl(AbstractDecoratedTextEditor.java:447)
    at org.eclipse.ui.part.MultiPageEditorPart.addPage(MultiPageEditorPart.java:243)
    at org.eclipse.ui.forms.editor.FormEditor.addPage(FormEditor.java:325)
    ....

您的MyEditor沒有設置編輯器輸入。

在您的代碼中:

MyEditor myEditor = new MyEditor();   
addPage(myEditor, myEditor.getEditorInput());

myEditor.getEditorInput()將返回null因為您尚未為編輯器設置輸入。

您必須將正確的編輯器輸入傳遞給addPage調用(通常是多頁面編輯器的輸入)。 然后將在編輯器中設置輸入。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM