if(userconfirm==0){
Прежде всего, не используйте магические числа.Люди не знают, что означает «0».API предоставляет такие переменные, как JOptionPane.YES_OPTION
, которые вы можете использовать.Используйте переменную, предоставляемую API, чтобы сделать код более читабельным.
При каждом запуске этого JFrame пользовательский код выполняется автоматически. Даже если я не закрываю фрейм
Вы должны использовать WindowListener для контроля закрытия окна.Базовая логика будет выглядеть примерно так:
JFrame frame = new JFrame(...);
frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
frame.addWindowListener( new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
JFrame frame = (JFrame)e.getSource();
int result = JOptionPane.showConfirmDialog(
frame,
"Are you sure you want to exit the application?",
"Exit Application",
JOptionPane.YES_NO_OPTION);
if (result == JOptionPane.YES_OPTION)
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
});
frame.setVisible( true );
Примечание: метод не нужен, поскольку логика закрытия обрабатывается внутри слушателя.
См. Закрытие приложения для получения дополнительной информации и идей кодирования.