5

関連する UI ランチャー プロジェクト ( http://lowcoupling.com/post/51877317162/the-acceleo- ui-launcher-project )

関連する doGenerate メソッドでこれを実行しようとしています...

public void doGenerate(IProgressMonitor monitor) throws IOException {

    Display display = Display.getCurrent();
    System.out.println(display);
    //....

しかし、私が得る表示はnullですどうすればいいですか?

4

4 に答える 4

5

状態のドキュメントIWorkbench#getDisplay():

コードは、 に依存するのではなく、常にワークベンチに表示を要求する必要がありますDisplay.getDefault()

だから使用:

PlatformUI.getWorkbench().getDisplay()

代わりは。

于 2013-10-04T21:36:44.290 に答える
1

私は同じ問題に直面していました。getShell().getDisplay()代わりに使用しましたがDisplay.getCurrent()、うまくいきました。

于 2015-06-25T11:38:26.987 に答える
1

デフォルトのディスプレイDisplay.getDefault()またはワークベンチのディスプレイを取得してみることができますPlatformUI.getWorkbench().getDisplay()

UI スレッドで実行していない場合は、次のことを試してください。

Display.getDefault().syncExec(new Runnable() {
    public void run() {
        // ... do work that updates the screen ...
    }
});
于 2013-10-04T21:39:00.960 に答える