Проблема в том, что вы пытаетесь подключиться к базе данных в вашем EventDispatcherThread, который в основном является потоком, отвечающим за все элементы графического интерфейса, которые у вас есть.Поток тратит время на подключение к базе данных и, как только он завершает (т.е. подключается к базе данных), обновляет ваш графический интерфейс.
Вы можете использовать что-то подобное, чтобы заставить его работать:
private void buttonConnectActionPerformed(java.awt.event.ActionEvent evt) {
jLabel.setText("Connecting ...");
new Thread(new Runnable()
{
@Override
public void run()
{
try {
String url = "jdbc:mysql://domain.com:3306/tablename";
String user = "username";
String password = "userpassword";
con = DriverManager.getConnection(url, user, password);
} catch (SQLException ex) {
Logger.getLogger(connection.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
)).start()
}
Я предполагаю, что con
является некоторой глобальной переменной.В этом случае, чтобы он был доступен в методе run()
, его необходимо объявить как final
.