Cet exemple vous apprendra comment faire une fenêtre de connexion en utilisant JavaFx et MySQL.
Ici c’est la capture d’écran de notre interface graphique dans l’outil scene builder. Telecharger l’outil pour creer l’interface utilisateur.
Le code css qui permet de styler votre interface utilisateur.
.login_container {
-fx-background-color: #EEEEEE;
}
.login_logo_container {
-fx-background-color: #0A3353;
-fx-alignment: center;
}
.login_logo_container Text {
-fx-font-size: 2em;
-fx-text-fill: #FFFFFF;
}
.login_logo_container FontAwesomeIconView {
-fx-fill: #ECF39E;
}
.login_form_container {
-fx-spacing: 15;
-fx-alignment: top_left;
}
.login_form_container Label {
-fx-font-size: 1.1em;
-fx-font-weight: bold;
}
.input_field {
-fx-background-color: #FFFFFF;
-fx-pref-height: 35;
-fx-font-size: 1.2em;
}
.login_form_container Button {
-fx-background-color: #0A3353;
-fx-text-fill: #FFFFFF;
-fx-pref-width: 350;
-fx-pref-height: 30;
-fx-font-size: 1.2em;
}
.login_form_container Button:hover {
-fx-cursor: hand;
}
Utiliser ce code pour créer la base données login et la table users.
CREATE DATABASE login;
USE login;
CREATE TABLE users(
id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(20) NOT NULL,
password VARCHAR(20) NOT NULL
);
INSERT INTO users(username,password)values('admin','admin');
Ce code vous permet d’établir la connexion entre l’application JavaFX et la base de données MySQL. Il suffit de copier ce code et le coller dans votre éditeur de code.
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class ConnexionData {
static String user = "root";
static String password = "1qaz";
static String url = "jdbc:mysql://localhost/login";
static String driver = "com.mysql.jdbc.Driver";
public static Connection getCon(){
Connection con = null;
try {
Class.forName(driver);
try {
con = DriverManager.getConnection(url,user,password);
} catch (SQLException e) {
throw new RuntimeException(e);
}
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
return con;
}
}
Le code source de classe contrôleur qui permet de manipuler tous les composants graphique du fichier fxml que vous pouvez créer avec l’outil scène Builder.
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.*;
import java.net.URL;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ResourceBundle;
public class LoginController implements Initializable {
@FXML
private TextField tf_addr;
@FXML
private PasswordField tf_pass;
@FXML
private Label lb_check;
@Override
public void initialize(URL url, ResourceBundle resourceBundle) {
}
@FXML
public void login(ActionEvent actionEvent) {
Connection connection = ConnexionData.getCon();
String query = "SELECT * from users where username = ? and password = ?";
try {
PreparedStatement ps = connection.prepareStatement(query);
ps.setString(1,tf_addr.getText());
ps.setString(2,tf_pass.getText());
ResultSet rs = ps.executeQuery();
if (rs.next()){
lb_check.setText("Login Successfully");
lb_check.setStyle("-fx-text-fill: blue;-fx-font-size: 1.3em;-fx-font-weight: bold");
}else {
lb_check.setText("Error");
lb_check.setStyle("-fx-text-fill: #FF0000;");
}
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
}