因此,每次制作对话框时,您或WindowMaker都会覆盖createButtonsForButtonBar
。
默认情况下,这会为您提供“确定”和“取消”按钮。
问题:
如果我可以向这些按钮添加自定义动作就没问题,但到目前为止我只发现了有限的方法。例如,如果我向OK按钮添加任何调用,它将抛出异常,widget
为disposed
。
我使用的解决方法:
到目前为止,我设法缩小了对话框,并将Override部分保持为空
这使得底部有一些空的空间,但没有什么烦人的
但这只是一个丑陋的解决方法和我必须开始制作较小的对话框,而这不是一个选项。
我尝试了什么:
parent
的{{1}}。结果:按钮不会显示。 createButtonsForButtonBar
错误也无效。问题:
如何使JFace对话框按钮有用?
答案 0 :(得分:4)
通常不会覆盖createButtonsForButtonBar
,默认情况通常很好,除非你想添加更多按钮或停止确定或取消正在创建。
如果您想在按下确定后执行某些操作,请覆盖okPressed()
,对于取消覆盖cancelPressed()
,在这两种情况下都应在覆盖中调用super
方法。
答案 1 :(得分:0)
我设法使用该方法,没有处理任何对象。你必须先打电话
super.createButtonsForButtonBar(parent);
此外,okPressed方法必须被覆盖并清空:
@Override
protected void okPressed() {
}
然后你可以通过以下方式获得按钮:
Button cancel = getButton(IDialogConstants.CANCEL_ID);
Button ok = getButton(IDialogConstants.OK_ID);
现在您可以添加自己的selectionListener