0

ボックスにComboViewer名前付きを作成しましcomboViewerた。TitleAreaDialogビューアには、 で定義されているさまざまなカテゴリが表示されTreeViewerます。

しかし、次の行で NullPointerException がスローされます。

ISelection categorySelection = comboViewer.getSelection();

なぜそうなるのですか?

4

1 に答える 1

0

この「パターン」を使用してこれを解決できます。つまり、ダイアログを設定するときに:

  final ISelection selection = new ISelection[1];

  Dialog diag = new Dialog(shell) {
    // createDialogArea()
    // remember your comboViewer as field


    @Override
    protected void okPressed() {
      selection[0] = comboViewer.getSelection();
      super.okPressed();
    }
  };

(あなたのケースでは、ダイアログの代わりに TitleAreaDialog を使用してください。)

つまり、ダイアログの okPressed メソッドをオーバーライドします。ユーザーが選択を行ってから [OK] を押すと、selection[0] に選択が含まれます。

于 2012-10-11T12:49:31.340 に答える