コンボボックスのEclipseプラグインで選択したアイテムの取得値

txprogrammer:

どのように私は、コンボボックスから選択した項目の値を得るのですか?saveInputメソッドを実行するとき、私はヌルポインタ例外を得続けます。

ここに私のダイアログのコードは次のとおりです。

public class MyTitleAreaDialog extends TitleAreaDialog {

    private String age;    
    private Combo combo;    

    public MyTitleAreaDialog(Shell parentShell) {
        super(parentShell);
    }

    @Override
    public void create() {
        super.create();
        setTitle("Age Box");
        setMessage("Please enter your info..", IMessageProvider.INFORMATION);
    }

    @Override
    protected Control createDialogArea(Composite parent) {            
        Combo combo = new Combo(container, SWT.READ_ONLY);
        combo.setItems(new String[] {"21", "22", "23"});    
        return area;
    }

    private void saveInput() {        
        if(combo.getSelectionIndex() >= 0){
            age = combo.getItem(combo.getSelectionIndex());
        }        
    }

    @Override
    protected void okPressed() {
        saveInput();
        super.okPressed();
    }

    public String getSelectedAge() {
        return age;
    }        
}

ここでは、ハンドラのコードは次のとおりです。

public class SampleHandler extends AbstractHandler {

    @Override
    public Object execute(ExecutionEvent event) throws ExecutionException {
        IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindowChecked(event);

        MyTitleAreaDialog dialog = new MyTitleAreaDialog(window.getShell());

        dialog.create();
        if (dialog.open() == Window.OK) {           
            System.out.println(dialog.getSelectedAge());            
        }       
        return null;
    }
}

私は... JavaとEclipseのプログラミングに新しい感謝をどのhelp..I'mをいただければ幸いです!

グレッグ-449:

あなたのcreateDialogArea方法を割り当てているComboローカルと呼ばれる変数comboいないフィールドと呼ばれますcombo

交換してください:

Combo combo = new Combo(container, SWT.READ_ONLY);

とともに

combo = new Combo(container, SWT.READ_ONLY);

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=301225&siteId=1