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);