這是我的createButtonsForButtonsBar
方法。createButton - SWT.PUSH與OK
protected void createButtonsForButtonBar(Composite parent) {
Button okButton = createButton(parent, SWT.PUSH, "Close Aplot", true);
okButton.setEnabled(true);
okButton.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
viewer = null;
getShell().setVisible(false);
}
});
}
我不得不改變
Button okButton = createButton(parent, OK, "Close Aplot", true);
到
Button okButton = createButton(parent, SWT.PUSH, "Close Aplot", true);
由於OK版本,在這條線
getShell().setVisible(false);
錯誤大致拋出一個運行空指針錯誤:
在com.test.BaseDialog $ 7.widgetSelected(BaseDialog.java:277未處理的事件循環異常顯示java.lang.NullPointerException
問:
是什麼OK
和SWT.PUSH
之間的區別?
爲什麼會OK導致上述錯誤?
通過你的回答,我發現我的問題更多的是設計缺陷。你已經回答了這個問題。我可能需要打開另一個關於最佳實踐的問題來隱藏對話框。 – jkteater 2013-03-11 15:28:28