1
我正在使用SWT JFace對話框。按下OK按鈕後,JFace對話框保持打開狀態
我在OK按鈕中添加了一個監聽器,我想在用戶單擊OK按鈕時顯示一個消息框。 在這一步中的問題是,當我一旦點擊確定按鈕殼就會被丟棄。我如何防止這種行爲?
我正在使用SWT JFace對話框。按下OK按鈕後,JFace對話框保持打開狀態
我在OK按鈕中添加了一個監聽器,我想在用戶單擊OK按鈕時顯示一個消息框。 在這一步中的問題是,當我一旦點擊確定按鈕殼就會被丟棄。我如何防止這種行爲?
以下代碼將通過「確定」按鈕阻止對話框關閉。只是不要在okPressed()
方法調用this.close()
:
public static void main(String[] args) {
final Display display = new Display();
final Shell shell = new Shell(display);
shell.setLayout(new FillLayout());
new OptionsDialog(shell).open();
shell.pack();
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
private static class OptionsDialog extends Dialog {
private Composite composite;
public OptionsDialog(Shell parentShell)
{
super(parentShell);
setShellStyle(parentShell.getStyle() | SWT.CLOSE | SWT.TITLE | SWT.BORDER | SWT.APPLICATION_MODAL);
setBlockOnOpen(true);
}
protected Control createDialogArea(Composite parent) {
this.composite = (Composite) super.createDialogArea(parent);
GridLayout layout = new GridLayout(1, false);
layout.marginHeight = 5;
layout.marginWidth = 10;
composite.setLayout(layout);
createContent();
return composite;
}
private void createContent()
{
/* add your widgets */
}
protected void configureShell(Shell newShell)
{
super.configureShell(newShell);
newShell.setText("Shell name");
}
public void okPressed()
{
/* DO NOTHING HERE!!! */
//this.close();
}
}
感謝很多:)其工作 – user1205079
@ user1205079大,有樂趣。 – Baz