【问题标题】:Getting value of selected item in combo box eclipse plugin在组合框eclipse插件中获取所选项目的值
【发布时间】:2020-06-28 20:57:41
【问题描述】:

如何从组合框中获取所选项目的值?执行 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 编程的新手...谢谢!!

【问题讨论】:

  • 可理解的问题,提供代码并解释问题!回想一下:关于错误/异常的问题应该使用完整的 error-message 或(在这种情况下)stacktrace

标签: java eclipse eclipse-plugin swt eclipse-rcp


【解决方案1】:

您的createDialogArea 方法是将Combo 分配给名为combo本地 变量,不是 名为combo 的字段。

替换:

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

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

【讨论】:

  • @txprogrammer 用于实现createDialogArea 你可以看看similar question 同样得到greg 的回答。
  • 感谢您向我指出该示例,我以前没有看到它。
猜你喜欢
  • 2014-01-13
  • 2014-02-06
  • 2017-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-05
  • 2019-10-27
  • 1970-01-01
相关资源
最近更新 更多