1

SWT と JFace は初めてです。TableViewerが添付されたダイアログがあります。にフィルターを追加しましたTableViewer。私の要件は、検索で複数のアイテムが返されたときにダイアログにそれらを表示し、ユーザーが必要なものを選択してから [OK] をクリックして、選択した値が親関数に返されるようにすることです。

問題なく実装できました。ただし、検索で値が 1 つしか返されない場合は、この値を親ウィンドウに戻し、ダイアログを閉じる必要があります。

コードを介してダイアログを閉じる際に問題が発生しています。okPressed()条件を満たしたときに使ってみました。

これは私が呼んでいるところですokPressed()

if(!searchStr.isEmpty()){
    dialogSearch();
    if(tableViewer.getTable().getItems().length == 1){
        TableItem[] itemSelected = tableViewer.getTable().getItems();
        pojoRefType = (Object)itemSelected[0].getData();
        this.okPressed();
    } 
}

java.lang.IllegalArgumentException: org.eclipse.swt.SWT.error (未知のソース) で引数が無効です org.eclipse.swt.SWT.error (未知のソース)

誰でも状態を処理する方法を提案できますか?

4

1 に答える 1

0

ダイアログを閉じるには、次のように呼び出します。

this.setReturnCode(OK);
this.close();

やることはそれだけ…

あなたも試すことができます:

super.okPressed();
于 2012-09-20T18:01:03.133 に答える