Login JavaFX MySQL

Cet exemple vous apprendra comment faire une fenêtre de connexion en utilisant JavaFx et MySQL.

Login JavaFX MySQL
Login JavaFX 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.

Login JavaFX MySQL
Login JavaFX MySQL

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);
        }

    }
}

Laisser un commentaire