Это небольшой java пример входа в программу, который я сделал, когда я запустил его и нажал на кнопку JFXButton Login, на изображении появляется задержка примерно на 1 секунду, зная, что программе удалось подключиться и запрос после этой задержки
это происходит с JFXButton для второй задержки
впоследствии, когда я снова нажимаю на эту кнопку, она работает быстро и плавно, пока я не остановлю запустите снова.
обратите внимание, что регистрация JFXButton, которая переносит меня в другую сцену, работает нормально, и что я новичок в этой области. Спасибо :)
public void initialize(URL location, ResourceBundle resources) {
progressBar.setStyle("-fx-background-color: green");
progressBar.setVisible(false);
wrngPassLbl.setVisible(false);
handler = new DBHandler();
}
@FXML
public void loginAction(ActionEvent e) {
progressBar.setVisible(true);
PauseTransition pt = new PauseTransition();
pt.setDuration(Duration.seconds(3));
pt.setOnFinished(ex -> {
System.out.println("Login successful.");
});
pt.play();
String q1 = "select * from [User] where userName=? and userPass=?";
dbConnection = handler.getConnection();
try {
pst = dbConnection.prepareStatement(q1);
pst.setString(1, usrTxt.getText());
pst.setString(2, passTxt.getText());
ResultSet result = pst.executeQuery();
int count = 0;
while (result.next()) {
count++;
}
if (count == 1) {
System.out.print("Connection is successfully established");
} else if (count == 0) {
System.out.print("wrong username or password");
}
pst.close();
dbConnection.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
}
и это класс DBHanler (для связи)
public class DBHandler extends Configs {
Connection dbConnection;
public Connection getConnection() {
Properties prop = new Properties();
prop.setProperty("user", dbUser);
prop.setProperty("password", dbPass);
prop.setProperty("useSSL", "false");
prop.setProperty("autoReconnect", "true");
String connectionString = "jdbc:mysql://" + dbHost + ":" + dbPort + "/" + dbName;
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException ex) {
ex.printStackTrace();
}
try {
dbConnection = DriverManager.getConnection(connectionString,prop);
} catch (SQLException ex) {
ex.printStackTrace();
}
return dbConnection;
}
}