0% found this document useful (0 votes)
3 views12 pages

Package Application

The document is a JavaFX application for managing bank accounts, allowing users to deposit, withdraw, and transfer funds. It connects to a MySQL database to perform operations on account balances based on user input. The application features a graphical user interface with buttons for various actions and alerts for user feedback.

Uploaded by

bazigrace07
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views12 pages

Package Application

The document is a JavaFX application for managing bank accounts, allowing users to deposit, withdraw, and transfer funds. It connects to a MySQL database to perform operations on account balances based on user input. The application features a graphical user interface with buttons for various actions and alerts for user feedback.

Uploaded by

bazigrace07
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 12

package application;

import javafx.application.Application;

import javafx.scene.Scene;

import javafx.scene.control.Alert;

import javafx.scene.control.Button;

import javafx.scene.control.TextField;

import javafx.scene.text.Font;

import javafx.scene.text.Text;

import javafx.scene.layout.AnchorPane;

import javafx.stage.Stage;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

public class GestionDeCompte extends Application {

// Informations pour la base de données

String url = "jdbc:mysql://localhost:3306/jdbc";

String user = "root";

String password = "";

@Override

public void start(Stage primaryStage) {

AnchorPane root = new AnchorPane();

root.setPrefSize(528, 385);
Text title = new Text("GESTION DE COMPTE");

title.setFont(Font.font("Bodoni MT Black", 17));

title.setLayoutX(173);

title.setLayoutY(60);

root.getChildren().add(title);

Text codeLabel = new Text("Code:");

codeLabel.setFont(Font.font("Arial Bold Italic", 15));

codeLabel.setFill(javafx.scene.paint.Color.valueOf("#131414"));

codeLabel.setLayoutX(88);

codeLabel.setLayoutY(107);

root.getChildren().add(codeLabel);

Text montantLabel = new Text("Montant:");

montantLabel.setFont(Font.font("Arial Bold Italic", 15));

montantLabel.setLayoutX(88);

montantLabel.setLayoutY(163);

root.getChildren().add(montantLabel);

TextField codeField = new TextField();

codeField.setPromptText("entrer le matricule");

codeField.setLayoutX(171);

codeField.setLayoutY(86);

codeField.setPrefSize(231, 26);

root.getChildren().add(codeField);

TextField montantField = new TextField();

montantField.setPromptText("entrer le montant");

montantField.setLayoutX(171);

montantField.setLayoutY(144);

montantField.setPrefSize(231, 26);

root.getChildren().add(montantField);

Button retirerButton = new Button("Retirer");


retirerButton.setStyle("-fx-background-color: green; "

+ "-fx-border-color: black; "

+ "-fx-border-width: 2px; "

+ "-fx-text-fill: white;");

retirerButton.setFont(Font.font(15));

retirerButton.setLayoutX(121);

retirerButton.setLayoutY(228);

root.getChildren().add(retirerButton);

Button virerButton = new Button("Virer");

virerButton.setStyle("-fx-background-color: green; "

+ "-fx-border-color: black; "

+ "-fx-border-width: 2px; "

+ "-fx-text-fill: white;");

virerButton.setFont(Font.font(15));

virerButton.setLayoutX(207);

virerButton.setLayoutY(228);

root.getChildren().add(virerButton);

Button verserButton = new Button("Verser");

verserButton.setStyle("-fx-background-color: green; "

+ "-fx-border-color: black; "

+ "-fx-border-width: 2px; "

+ "-fx-text-fill: white;");

verserButton.setFont(Font.font(15));

verserButton.setLayoutX(287);

verserButton.setLayoutY(228);

root.getChildren().add(verserButton);

Button soldeButton = new Button("Solde");

soldeButton.setStyle("-fx-background-color: blue;"

+ "-fx-border-color: black; "


+ "-fx-border-width: 2px; "

+ "-fx-text-fill: white;");

soldeButton.setFont(Font.font(15));

soldeButton.setLayoutX(368);

soldeButton.setLayoutY(228);

root.getChildren().add(soldeButton);

verserButton.setOnAction(event -> {

String code = codeField.getText();

String montant = montantField.getText();

if (code.isEmpty() || montant.isEmpty()) {

showAlert(Alert.AlertType.WARNING, "Veuillez remplir tous les champs.");

} else {

verserMontant(code, montant);

});

virerButton.setOnAction(event -> openVirementInterface(primaryStage));

retirerButton.setOnAction(event -> {

String code = codeField.getText();

String montant = montantField.getText();

if (code.isEmpty() || montant.isEmpty()) {

showAlert(Alert.AlertType.WARNING, "Veuillez remplir tous les champs.");

} else {

retirerMontant(code, montant);

});

soldeButton.setOnAction(event -> {

String code = codeField.getText();

if (code.isEmpty()) {
showAlert(Alert.AlertType.WARNING, "Veuillez entrer le matricule.");

} else {

afficherSolde(code);

});

Scene scene = new Scene(root);

primaryStage.setTitle("Gestion de Compte");

primaryStage.setScene(scene);

primaryStage.show();

};

private void openVirementInterface(Stage primaryStage) {

Stage virementStage = new Stage();

AnchorPane virementRoot = new AnchorPane();

virementRoot.setPrefSize(528, 385);

Text title = new Text("VIREMENT");

title.setFont(Font.font("Bodoni MT Black", 17));

title.setLayoutX(191);

title.setLayoutY(60);

virementRoot.getChildren().add(title);

Text codeLabel = new Text("Code:");

codeLabel.setFont(Font.font("Arial Bold Italic", 15));

codeLabel.setLayoutX(70);

codeLabel.setLayoutY(105);

virementRoot.getChildren().add(codeLabel);

Text montantLabel = new Text("Montant:");

montantLabel.setFont(Font.font("Arial Bold Italic", 15));

montantLabel.setLayoutX(70);

montantLabel.setLayoutY(163);

virementRoot.getChildren().add(montantLabel);
Text beneficiaireLabel = new Text("Beneficiaire:");

beneficiaireLabel.setFont(Font.font("Arial Bold Italic", 15));

beneficiaireLabel.setLayoutX(70);

beneficiaireLabel.setLayoutY(230);

virementRoot.getChildren().add(beneficiaireLabel);

TextField codeField = new TextField();

codeField.setPromptText("entrer le matricule");

codeField.setLayoutX(171);

codeField.setLayoutY(86);

codeField.setPrefSize(231, 26);

virementRoot.getChildren().add(codeField);

TextField montantField = new TextField();

montantField.setPromptText("entrer le montant");

montantField.setLayoutX(173);

montantField.setLayoutY(144);

montantField.setPrefSize(231, 26);

virementRoot.getChildren().add(montantField);

TextField beneficiaireField = new TextField();

beneficiaireField.setPromptText("entrer le numero du beneficiaire");

beneficiaireField.setLayoutX(173);

beneficiaireField.setLayoutY(209);

beneficiaireField.setPrefSize(231, 26);

virementRoot.getChildren().add(beneficiaireField);

Button retourButton = new Button("Retour");

retourButton.setStyle("-fx-background-color: blue;" + "-fx-border-color: black; ");

retourButton.setFont(Font.font(15));

retourButton.setLayoutX(61);

retourButton.setLayoutY(290);

retourButton.setOnAction(event -> virementStage.close());


virementRoot.getChildren().add(retourButton);

Button effectuerButton = new Button("Effectuer");

effectuerButton.setStyle("-fx-background-color: green;" + "-fx-border-color: black; ");

effectuerButton.setFont(Font.font(15));

effectuerButton.setLayoutX(354);

effectuerButton.setLayoutY(290);

effectuerButton.setOnAction(event -> {

String codeEmetteur = codeField.getText();

String codeBeneficiaire = beneficiaireField.getText();

String montantText = montantField.getText();

if (codeEmetteur.isEmpty() || codeBeneficiaire.isEmpty() || montantText.isEmpty()) {

showAlert(Alert.AlertType.WARNING, "Veuillez remplir tous les champs.");

return;

try {

double montant = Double.parseDouble(montantText);

if (montant <= 0) {

showAlert(Alert.AlertType.WARNING, "Le montant doit être supérieur à zéro.");

return;

effectuerVirement(codeEmetteur, codeBeneficiaire, montant);

} catch (NumberFormatException e) {

showAlert(Alert.AlertType.ERROR, "Veuillez entrer un montant valide.");

});
virementRoot.getChildren().add(effectuerButton);

Scene virementScene = new Scene(virementRoot);

virementStage.setTitle("Virement");

virementStage.setScene(virementScene);

virementStage.show();

private void effectuerVirement(String codeEmetteur, String codeBeneficiaire, double montant) {

try (Connection connection = DriverManager.getConnection(url, user, password)) {

String checkSoldeQuery = "SELECT solde FROM compte WHERE code = ?";

PreparedStatement checkSoldeStmt = connection.prepareStatement(checkSoldeQuery);

checkSoldeStmt.setString(1, codeEmetteur);

ResultSet rs = checkSoldeStmt.executeQuery();

if (!rs.next()) {

showAlert(Alert.AlertType.ERROR, "Compte émetteur introuvable.");

return;

double soldeEmetteur = rs.getDouble("solde");

if (soldeEmetteur < montant) {

showAlert(Alert.AlertType.WARNING, "Solde insuffisant pour effectuer le virement.");

return;

String checkBeneficiaireQuery = "SELECT solde FROM compte WHERE code = ?";

PreparedStatement checkBeneficiaireStmt =
connection.prepareStatement(checkBeneficiaireQuery);

checkBeneficiaireStmt.setString(1, codeBeneficiaire);

ResultSet rsBeneficiaire = checkBeneficiaireStmt.executeQuery();

if (!rsBeneficiaire.next()) {
showAlert(Alert.AlertType.ERROR, "Compte bénéficiaire introuvable.");

return;

String debitQuery = "UPDATE compte SET solde = solde - ? WHERE code = ?";

PreparedStatement debitStmt = connection.prepareStatement(debitQuery);

debitStmt.setDouble(1, montant);

debitStmt.setString(2, codeEmetteur);

debitStmt.executeUpdate();

String creditQuery = "UPDATE compte SET solde = solde + ? WHERE code = ?";

PreparedStatement creditStmt = connection.prepareStatement(creditQuery);

creditStmt.setDouble(1, montant);

creditStmt.setString(2, codeBeneficiaire);

creditStmt.executeUpdate();

showAlert(Alert.AlertType.INFORMATION, "Virement effectué avec succès !");

} catch (SQLException e) {

e.printStackTrace();

showAlert(Alert.AlertType.ERROR, "Une erreur s'est produite lors du virement.");

private void verserMontant(String code, String montant) {

try (Connection connection = DriverManager.getConnection(url, user, password)) {

String query = "UPDATE compte SET solde = solde + ? WHERE code = ?";

PreparedStatement preparedStatement = connection.prepareStatement(query);

preparedStatement.setDouble(1, Double.parseDouble(montant));

preparedStatement.setString(2, code);

int rowsUpdated = preparedStatement.executeUpdate();


if (rowsUpdated > 0) {

showAlert(Alert.AlertType.INFORMATION, "Montant versé avec succès !");

} else {

showAlert(Alert.AlertType.ERROR, "Aucun compte trouvé avec ce code.");

} catch (SQLException e) {

e.printStackTrace();

showAlert(Alert.AlertType.ERROR, "Erreur lors de l'accès à la base de données.");

private void retirerMontant(String code, String montant) {

try (Connection connection = DriverManager.getConnection(url, user, password)) {

String checkQuery = "SELECT solde FROM compte WHERE code = ?";

PreparedStatement checkStatement = connection.prepareStatement(checkQuery);

checkStatement.setString(1, code);

ResultSet resultSet = checkStatement.executeQuery();

if (resultSet.next()) {

double solde = resultSet.getDouble("solde");

double montantDouble = Double.parseDouble(montant);

if (montantDouble > solde) {

showAlert(Alert.AlertType.WARNING, "Fonds insuffisants !");

} else {

String query = "UPDATE compte SET solde = solde - ? WHERE code = ?";

PreparedStatement preparedStatement = connection.prepareStatement(query);

preparedStatement.setDouble(1, montantDouble);

preparedStatement.setString(2, code);
int rowsUpdated = preparedStatement.executeUpdate();

if (rowsUpdated > 0) {

showAlert(Alert.AlertType.INFORMATION, "Montant retiré avec succès !");

} else {

showAlert(Alert.AlertType.ERROR, "Aucun compte trouvé avec ce code.");

} else {

showAlert(Alert.AlertType.ERROR, "Aucun compte trouvé avec ce code.");

} catch (SQLException e) {

e.printStackTrace();

showAlert(Alert.AlertType.ERROR, "Erreur lors de l'accès à la base de données.");

private void afficherSolde(String code) {

try (Connection connection = DriverManager.getConnection(url, user, password)) {

String query = "SELECT solde FROM compte WHERE code = ?";

PreparedStatement preparedStatement = connection.prepareStatement(query);

preparedStatement.setString(1, code);

ResultSet resultSet = preparedStatement.executeQuery();

if (resultSet.next()) {

double solde = resultSet.getDouble("solde");

showAlert(Alert.AlertType.INFORMATION, "Solde actuel : " + solde + " $");

} else {

showAlert(Alert.AlertType.ERROR, "Aucun compte trouvé avec ce code.");

}
} catch (SQLException e) {

e.printStackTrace();

showAlert(Alert.AlertType.ERROR, "Erreur lors de l'accès à la base de données.");

private void showAlert(Alert.AlertType alertType, String message) {

Alert alert = new Alert(alertType);

alert.setContentText(message);

alert.showAndWait();

public static void main(String[] args) {

launch(args);

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy