Диалоговое окно в случае ошибки - Java

Узнай цену своей работы

Формулировка задачи:

Есть код запроса в удаленную БД. Как сделать так, чтобы в случае любой ошибки в этом участке кода появлялось окно с ошибкой, или хотя бы со стандартной фразой любого содержания? Чтобы пользователь понял, что что-то не так.Кроме того, При нажатии на кнопку, выполняется этот класс и кнопка меняет свое лого. Класс и кнопка связаны ActionListener. Можно ли сделать так, чтобы в случае ошибки кнопка не менялась на другу. сам класс:
public static class mysql implements ActionListener{
        ScheduledExecutorService executor = Executors.newScheduledThreadPool(1);
        ScheduledFuture<?> future = executor.scheduleWithFixedDelay(() -> actionPerformed(null), 1, 1, TimeUnit.MINUTES);
 
        private static String url = "jdbc:mysql://";
        private static String user = "";
        private static String password = "";

        private static Connection con;
        private static Statement stmt;
 
        public void actionPerformed(ActionEvent e){

            try {
            ownip = Getip.getip();
            gettime = Gettime.getip();
                    } catch (IOException e1) {
 
            e1.printStackTrace();
            return;
        }
 
        StringBuilder lp = List.list();
        try {

            con = DriverManager.getConnection(url, user, password);
            stmt = con.createStatement();
            String sql =  "zapros";
 
            PreparedStatement preparedStatement = con.prepareStatement(sql);
 
            preparedStatement.executeUpdate();
 
        } catch (SQLException sqlEx) {
            sqlEx.printStackTrace();
        } 
 
    }
 
}
Смена лого при нажатии:
Start.addItemListener(new ItemListener() {
            @Override
            public void itemStateChanged(ItemEvent e) {
                String icon = (Start.isSelected()) ? "/PFP/button_off.png" : "/PFP/button_on.png";
                Start.setIcon(new ImageIcon(gui.class.getResource(icon)));
 
            }
        });

Решение задачи: «Диалоговое окно в случае ошибки»

textual
Листинг программы
        JFrame topFrame = (JFrame)SwingUtilities.getWindowAncestor(this);
        
        public void actionPerformed(ActionEvent e){ 
            try {
                ownip = Getip.getip();
                gettime = Gettime.getip();
            } 
            catch (IOException e1) { 
                e1.printStackTrace();
                
                JOptionPane.showMessageDialog(topFrame, "Error getIp");
            return;
        }
 
        StringBuilder lp = List.list();
        try { 
            con = DriverManager.getConnection(url, user, password);
            stmt = con.createStatement();
            String sql =  "zapros";
 
            PreparedStatement preparedStatement = con.prepareStatement(sql);
 
            preparedStatement.executeUpdate();
            
            itemStateChanged();
 
        } 
        catch (SQLException sqlEx) {
            sqlEx.printStackTrace();
            
            JOptionPane.showMessageDialog(topFrame, "Error SQL");
        } 
        
       ...
        
        
        
        public void itemStateChanged() {
            String icon = (Start.isSelected()) ? "/PFP/button_off.png" : "/PFP/button_on.png";
            Start.setIcon(new ImageIcon(gui.class.getResource(icon))); 
        }

Оцени полезность:

7   голосов , оценка 4.714 из 5