void end(){
    int ans = new JOptionPane().showConfirmDialog(this.getContentPane(),"","",JOptionPane.YES_NO_CANCEL_OPTION);
    if(ans == JOptionPane.YES_OPTION){
      System.exit(0);
    }else if(ans == JOptionPane.NO_OPTION){
      System.exit(0);
    }
  }
可能な限り添削しました
終了処理にダイアログの返答により処理を換えたいのですが
(メモ帳を作っています。
 文書の変更が保存されていない場合ダイアログを出して破棄するかを聞いたり
 無題だったら名前を付けて保存に処理を送ったり)
これを実行すると
ダイアログが表示される終わりかたの場合

Winの不正処理が出て、エラーメッセージが

# An EXCEPTION_ACCESS_VIOLATION exception has been detected in native code outsi
de the VM.
# Program counter=0xbfe1200b
#

となります
どの辺が悪いのかお教え頂きたいです
お願いします