在关闭一个窗体时,要求弹出确认框,选择是,否和取消。代码是这样写的
监听器代码如下: private class jfAddUsrListener implements WindowListener{
public void windowClosed(WindowEvent e){
System.out.println("Closed");
}
public void windowClosing(WindowEvent e){
int saveResult = JOptionPane.showConfirmDialog(null
, "exit with save ?", "message", JOptionPane.YES_NO_CANCEL_OPTION);
if(saveResult == JOptionPane.YES_OPTION){
System.out.println("YES");
return ;
}
if(saveResult == JOptionPane.NO_OPTION){
System.out.println("NO");
e.getWindow().setVisible(false);
((Window)e.getComponent()).dispose();
newUser.getInstance().release();
return ;
}
if(saveResult == JOptionPane.CANCEL_OPTION){
System.out.println("CANCEL"); //当点击取消时, return ; //想不做任何修改,返回原窗体,但显然这样实现是不对的
}请问,这个代码问题出在哪里?谢谢
监听器代码如下: private class jfAddUsrListener implements WindowListener{
public void windowClosed(WindowEvent e){
System.out.println("Closed");
}
public void windowClosing(WindowEvent e){
int saveResult = JOptionPane.showConfirmDialog(null
, "exit with save ?", "message", JOptionPane.YES_NO_CANCEL_OPTION);
if(saveResult == JOptionPane.YES_OPTION){
System.out.println("YES");
return ;
}
if(saveResult == JOptionPane.NO_OPTION){
System.out.println("NO");
e.getWindow().setVisible(false);
((Window)e.getComponent()).dispose();
newUser.getInstance().release();
return ;
}
if(saveResult == JOptionPane.CANCEL_OPTION){
System.out.println("CANCEL"); //当点击取消时, return ; //想不做任何修改,返回原窗体,但显然这样实现是不对的
}请问,这个代码问题出在哪里?谢谢
public void catalogframe_window_close(WindowEvent e) {
int i = JOptionPane.showOptionDialog(this, "请问您要离开本系统吗?", "温馨提示",
JOptionPane.YES_NO_OPTION,
JOptionPane.WARNING_MESSAGE, null,
null, null);
//showOptionDialog是有返回值的。LZ看看JDK吧。我这把代码给你敲了
if (i == JOptionPane.YES_OPTION) {
this.setDefaultCloseOperation(CatalogFrame.EXIT_ON_CLOSE);
} else {
this.setDefaultCloseOperation(CatalogFrame.DO_NOTHING_ON_CLOSE);
}
}