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

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

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

Есть код запроса в удаленную БД. Как сделать так, чтобы в случае любой ошибки в этом участке кода появлялось окно с ошибкой, или хотя бы со стандартной фразой любого содержания? Чтобы пользователь понял, что что-то не так.Кроме того, При нажатии на кнопку, выполняется этот класс и кнопка меняет свое лого. Класс и кнопка связаны ActionListener. Можно ли сделать так, чтобы в случае ошибки кнопка не менялась на другу. сам класс:
Листинг программы
  1. public static class mysql implements ActionListener{
  2. ScheduledExecutorService executor = Executors.newScheduledThreadPool(1);
  3. ScheduledFuture<?> future = executor.scheduleWithFixedDelay(() -> actionPerformed(null), 1, 1, TimeUnit.MINUTES);
  4. private static String url = "jdbc:mysql://";
  5. private static String user = "";
  6. private static String password = "";
  7.  
  8. private static Connection con;
  9. private static Statement stmt;
  10. public void actionPerformed(ActionEvent e){
  11.  
  12. try {
  13. ownip = Getip.getip();
  14. gettime = Gettime.getip();
  15. } catch (IOException e1) {
  16. e1.printStackTrace();
  17. return;
  18. }
  19. StringBuilder lp = List.list();
  20. try {
  21.  
  22. con = DriverManager.getConnection(url, user, password);
  23. stmt = con.createStatement();
  24. String sql = "zapros";
  25. PreparedStatement preparedStatement = con.prepareStatement(sql);
  26. preparedStatement.executeUpdate();
  27. } catch (SQLException sqlEx) {
  28. sqlEx.printStackTrace();
  29. }
  30. }
  31. }
Смена лого при нажатии:
Листинг программы
  1. Start.addItemListener(new ItemListener() {
  2. @Override
  3. public void itemStateChanged(ItemEvent e) {
  4. String icon = (Start.isSelected()) ? "/PFP/button_off.png" : "/PFP/button_on.png";
  5. Start.setIcon(new ImageIcon(gui.class.getResource(icon)));
  6. }
  7. });

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

textual
Листинг программы
  1.         JFrame topFrame = (JFrame)SwingUtilities.getWindowAncestor(this);
  2.        
  3.         public void actionPerformed(ActionEvent e){
  4.             try {
  5.                 ownip = Getip.getip();
  6.                 gettime = Gettime.getip();
  7.             }
  8.             catch (IOException e1) {
  9.                 e1.printStackTrace();
  10.                
  11.                 JOptionPane.showMessageDialog(topFrame, "Error getIp");
  12.             return;
  13.         }
  14.  
  15.         StringBuilder lp = List.list();
  16.         try {
  17.             con = DriverManager.getConnection(url, user, password);
  18.             stmt = con.createStatement();
  19.             String sql =  "zapros";
  20.  
  21.             PreparedStatement preparedStatement = con.prepareStatement(sql);
  22.  
  23.             preparedStatement.executeUpdate();
  24.            
  25.             itemStateChanged();
  26.  
  27.         }
  28.         catch (SQLException sqlEx) {
  29.             sqlEx.printStackTrace();
  30.            
  31.             JOptionPane.showMessageDialog(topFrame, "Error SQL");
  32.         }
  33.        
  34.        ...
  35.        
  36.        
  37.        
  38.         public void itemStateChanged() {
  39.             String icon = (Start.isSelected()) ? "/PFP/button_off.png" : "/PFP/button_on.png";
  40.             Start.setIcon(new ImageIcon(gui.class.getResource(icon)));
  41.         }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут