我设法按照下面列出的代码在 IToolBarManager 上添加一个组合框。现在有人知道如何从该范围之外访问 IContributionItem 内创建的组合框吗?
亲切的问候, 基里亚科斯
IToolBarManager mgr = this.getViewSite().getActionBars().getToolBarManager();
IContributionItem comboCI = new ControlContribution("test") {
protected Control createControl(Composite parent) {
final Combo c = new Combo(parent, SWT.READ_ONLY);
c.add("one");
c.add("two");
c.add("three");
c.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
c.add("four");
}
});
return c;
}
};
mgr.add(comboCI);
最佳答案
将组合变量放入 ControlContribution 类或 IContributionItem 接口(interface)中并创建 get 方法。
class ControlContribution implements IContributionItem {
protected Combo combo;
public Combo getCombo(){
return combo;
}
}
这样,您就不需要在匿名类中声明它。
IContributionItem comboCI = new ControlContribution("test") {
protected Control createControl(Composite parent) {
combo = new Combo(parent, SWT.READ_ONLY);
combo.add("one");
combo.add("two");
combo.add("three");
combo.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
combo.add("four");
}
});
return combo;
}
};
你可以打电话
comboCI.getCombo();
显然,IContributionItem接口(interface)需要有getCombo()方法
关于java - 如何访问 IContributionItem 的组合框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10337833/