Диалоговое окно в случае ошибки - 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)));
}