TP
Les interfaces graphique en JAVA
Objectifs
Temps alloué
Outils
‐ Développer des GUI en utilisant les Swing.
‐ Manipuler les évènements
‐
S’initier à la connexion avec une base de
données.
4h30
Eclipse/NetBeans
Étude de cas : Interface de Login
A Volet Projet
Nous voulons développer une interface d’authentification, en utilisant les Swing.
L’allure de l’interface est la suivante :
1
FIG 1 : Interface d’authentification
Etape 1 : La construction de l’interface :
Objectif : Sélectionner les composants adéquats dans le JFrame
Etape 2 : Le code des composants de l’interface :
Etape 3 : Le fonctionnement de l’inteface :
Le bouton Login :
Si le Login et mot de passe sont corrects afficher la fenêtre suivante :
Si le login est incorrect alors afficher la fenêtre suivante :
FIG 2 : Success
2
FIG 3 : Error
Si le login est correct et le mot de passe est incorrect alors afficher la
Publicité
fenêtre suivante :
FIG 4 : Error
Si le login et le mot de passe sont incorrects :
FIG 5 : Error
3
Le bouton SignIn :
En cliquant sur ce bouton le formulaire suivant s’affiche afin d’enregistrer un
nouveau Utilisateur :
Valider : insère un nouveau user dans la base de données.
Annuler : annule la transaction en initialisant les champs.
4
Etape 4 : Le contrôle de saisie
Pour chaque zone de saisi, vous devez effectuer un contrôle de saisi rigoureux afin
de s’assurer que les bonnes valeurs sont insérées dans la base de données.
B Volet base de données
Comment se connecter à une base de données MySql à partir de NetBeans?
1. Vous devez disposer d’une instance du serveur de BDD MySql, XAMP,
MySql,…
2. L’onglet Services, Datatbases,
3. Register MySql Server, examinez les paramètres ci‐dessous.
Puis renseignez les paramètres du serveur (start command & stop
command)
4. Créer la base de données « test » sous le serveur MySql :
5
5. Connectez la base de données « test »
6. Tester la connexion à votre BDD
7. Puis renseigner le Driver adéquat :
6
8. Tester la connexion
7
La base de données s’appelle test, elle a les paramètres suivants :
Publicité
Configurez votre environnement Eclipse ou NetBeans pour pouvoir se
connecter à la base de donnés MySql.
Le Driver est « com.mysql.jdbc.Driver, le lien de téléchargement est :
http://www.java2s.com/Code/Jar/c/Downloadcommysqljdbc515jar.htm
Vous disposez du code suivant permettant la connexion à la base de
données « test ».
import java.sql.Connection;
import java.sql.DriverManager;
public class DBConnection {
//Variable pour la connexion
public Connection cnx;
public Connection connecterDB(){
try{
Class.forName("com.mysql.jdbc.Driver");
System.out.println("Driver ok");
String url="jdbc:mysql://localhost:3306/test";
String user="root";
String password="";
8
Connection cnx =
DriverManager.getConnection(url,user,password);
System.out.println("Connexion bien établie");
return cnx;
}
catch(Exception e)
{
e.printStackTrace();
return null;
}
}
}
9. Créez la table « user » qui possède la structure suivante :
Publicité
Description
Primary Key
Colonne
login
matricule
nom
prenom
mot_de_passe
etat
Type
VarChar(20)
Int (10)
VarChar(20)
VarChar(20)
VarChar(20)
char
10. Programmez les boutons login et SignIn.
11. Code du bouton Login :
private void bt_loginActionPerformed(java.awt.event.ActionEvent evt) {
//Objet pour se connecter à la base de données
DBConnection b =new DBConnection();
Connection cnx;
String login = txt_login.getText();
String mdp = txt_mdp.getText();
cnx= b.connecterDB();
try {
//Création de la requête
String sql = ("SELECT mot_de_passe FROM user WHERE login
='"+login+"'");
Statement smt = cnx.createStatement();
ResultSet rs = smt.executeQuery(sql) ;
9
Publicité
System.out.println("\nle rs est "+rs);
int option = 0;
if(rs.next())
{
String motDePasse = rs.getString(1);
if(motDePasse.equals(mdp))
{
JOptionPane.showMessageDialog(null,"Connexion
réussie ! ","Success",JOptionPane.PLAIN_MESSAGE);
if(option==JOptionPane.OK_OPTION)
new MainMenu().setVisible(true);
this.hide();
}
else
{
JOptionPane.showMessageDialog(null,"Mot de passe
incorrect ! ","Error",1);
}
}
else
{
JOptionPane.showMessageDialog(null,"Login
incorrect ! ","Error",1);
}
}
catch (SQLException e) {
System.out.println(e.getMessage());
}
}
10