我需要Button
的{{1}}版本。我应该自己这样做,还是JFace中已有可以重用的东西?注意,我需要按钮实例,因为我想将它作为对话框中的默认按钮。
使用IAction
我似乎无法获取按钮实例。
答案 0 :(得分:3)
我认为最好使用getWidget()
中的ActionContributionItem
方法获取与Button
相关联的ActionContributionItem
实例。
ActionContributionItem aci = new ActionContributionItem(action);
ai.fill(parent);
Button widget = (Button) ai.getWidget();
答案 1 :(得分:1)
在fill(parent)
后,我认为你可以调用parent.getChildren()。我希望新按钮将是返回的Control []中的最后一个条目。因此:
Control kids[] = parent.getChildren();
if (kids != null && kids.length != 0) {
getShell().setDefaultButton( (Button)kids[kids.length - 1] );
}
如果它没有停留在最后,你必须得到前后的孩子列表,并找到新的条目......但它几乎肯定会在最后加上。