Interface graphique en java
Résolu
fafall
Messages postés
8
Date d'inscription
Statut
Membre
Dernière intervention
-
js95 Messages postés 773 Date d'inscription Statut Membre Dernière intervention -
js95 Messages postés 773 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je veux utilisé les interface graphique et je veux me connecter avec ma base de donnée mais en compilant ma fenêtre je n'obtiens rien comme message.
Pourriez vous m'aider s'il vous plait?
public static Connection initConnection () {
Connection MaConnection= null;
String url = "jdbc:mysql://localhost:3306/ci_ugb";
try{
//Le chargement du pilote
Class.forName("org.gjt.mm.mysql.Driver");
}catch (Exception e) {
System.out.println("Impossible décharger le pilote jdbc");
}
try{
//L'établissement de la connexion
MaConnection = (Connection) DriverManager.getConnection(url,"fatou","admin");
}
catch (SQLException se) {
System.out.println("Connexion Impossible");
}
return MaConnection;
}
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if (e.getSource()== valider){
String s1 = jTextField.getText();
String s2 = jPasswordField.getText();
if ((s1!="") && (s2!="")){
Connection maCo = initConnection();
if (maCo == null) return;
String req = "Select * from users";
try{
Statement st = maCo.createStatement();
ResultSet rs = st.executeQuery(req);
while (rs.next()){
if((rs.getString("login").equals(s1)) &&
(rs.getString("password").equals(s2))){
this.dispose();
JFrame fen = new Menu() ;
fen.setVisible(true) ;
}
else
System.out.println("Erreur Login : Login ou mot de passe non valide.");
}
rs.close(); st.close(); maCo.close();
}
catch (SQLException se) {
System.out.println("connexion impossible");
}
}
else
JOptionPane.showMessageDialog(null, "il faut Remplire les chanps vides");
}else
if (e.getSource()== jButton){
this.dispose();
System.exit(0);
}
}
je veux utilisé les interface graphique et je veux me connecter avec ma base de donnée mais en compilant ma fenêtre je n'obtiens rien comme message.
Pourriez vous m'aider s'il vous plait?
public static Connection initConnection () {
Connection MaConnection= null;
String url = "jdbc:mysql://localhost:3306/ci_ugb";
try{
//Le chargement du pilote
Class.forName("org.gjt.mm.mysql.Driver");
}catch (Exception e) {
System.out.println("Impossible décharger le pilote jdbc");
}
try{
//L'établissement de la connexion
MaConnection = (Connection) DriverManager.getConnection(url,"fatou","admin");
}
catch (SQLException se) {
System.out.println("Connexion Impossible");
}
return MaConnection;
}
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if (e.getSource()== valider){
String s1 = jTextField.getText();
String s2 = jPasswordField.getText();
if ((s1!="") && (s2!="")){
Connection maCo = initConnection();
if (maCo == null) return;
String req = "Select * from users";
try{
Statement st = maCo.createStatement();
ResultSet rs = st.executeQuery(req);
while (rs.next()){
if((rs.getString("login").equals(s1)) &&
(rs.getString("password").equals(s2))){
this.dispose();
JFrame fen = new Menu() ;
fen.setVisible(true) ;
}
else
System.out.println("Erreur Login : Login ou mot de passe non valide.");
}
rs.close(); st.close(); maCo.close();
}
catch (SQLException se) {
System.out.println("connexion impossible");
}
}
else
JOptionPane.showMessageDialog(null, "il faut Remplire les chanps vides");
}else
if (e.getSource()== jButton){
this.dispose();
System.exit(0);
}
}
A voir également:
- Interface graphique en java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Changer carte graphique - Guide
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
3 réponses
Bonjour,
plusieurs remarques :
-> Les classes java, les composants swing en particulier, commencent par une majuscule,
jTextField => JTextField
jButton => JButton
jPasswordField => JPasswordField
Ces composants sont sans doute des variables dans ton code, mais elles ne sont pas déclarées dans l'extrait de code que tu fournis.
-> s1 != ""
Non, ici on veut comparer une chaîne à la chaîne vide, mais java va comparer les emplacements mémoire de "" et de s1, ce qui n'est pas ce qu'on veut. Utilise plutôt
!s1.isEmpty()
Pareil pour s2.
-> JFrame fen = new Menu();
NetBeans dit que les types Menu et JFrame sont incompatibles.
Ton problème vient très probablement de là.
-> Il serait bien de donner une taille minimale à la fenêtre (JFrame) ou d'appeler la méthode pack() avant de l'afficher.
-> Si tu pouvais préciser dans quelle classe tu as mis la méthode actionPerformed ci-dessus et la classe des objets non référencés (valider, etc.) dans le code ci-dessus cela pourrait nous aider à t'aider.
-> Remarque d'optimisation concernant la requête :
c'est très coûteux d'extraire toute la table pour un seul utilisateur. J'aurais plutôt fait un
SELECT password FROM users WHERE login=''
en mettant le login dans la requête entre les deux '. Après il n'y a plus qu'à vérifier que le mot de passe est bon pour autoriser la connexion.
Mais attention, dans ce cas il faut faire une requête préparée pour éviter le risque d'injection SQL. Je te l'explique dans un second post si j'arrive à remettre la main sur un code similaire...
plusieurs remarques :
-> Les classes java, les composants swing en particulier, commencent par une majuscule,
jTextField => JTextField
jButton => JButton
jPasswordField => JPasswordField
Ces composants sont sans doute des variables dans ton code, mais elles ne sont pas déclarées dans l'extrait de code que tu fournis.
-> s1 != ""
Non, ici on veut comparer une chaîne à la chaîne vide, mais java va comparer les emplacements mémoire de "" et de s1, ce qui n'est pas ce qu'on veut. Utilise plutôt
!s1.isEmpty()
Pareil pour s2.
-> JFrame fen = new Menu();
NetBeans dit que les types Menu et JFrame sont incompatibles.
Ton problème vient très probablement de là.
-> Il serait bien de donner une taille minimale à la fenêtre (JFrame) ou d'appeler la méthode pack() avant de l'afficher.
-> Si tu pouvais préciser dans quelle classe tu as mis la méthode actionPerformed ci-dessus et la classe des objets non référencés (valider, etc.) dans le code ci-dessus cela pourrait nous aider à t'aider.
-> Remarque d'optimisation concernant la requête :
c'est très coûteux d'extraire toute la table pour un seul utilisateur. J'aurais plutôt fait un
SELECT password FROM users WHERE login=''
en mettant le login dans la requête entre les deux '. Après il n'y a plus qu'à vérifier que le mot de passe est bon pour autoriser la connexion.
Mais attention, dans ce cas il faut faire une requête préparée pour éviter le risque d'injection SQL. Je te l'explique dans un second post si j'arrive à remettre la main sur un code similaire...
S'il vous plait j'avais installer EclipseVE pour ma modélisation en UML mais actuellement je peux plus accéder à mes diagrammes et il m'affiche se message quand j'essaye de l'ouvrir il m'ecrit ce message.
The diagram has been corrupted for unknown reasons. Please select your diagram in the package explorer, open the popup menu and select replace With >Loval History.... in order to restore your previous diagram.
Merci d'avance
The diagram has been corrupted for unknown reasons. Please select your diagram in the package explorer, open the popup menu and select replace With >Loval History.... in order to restore your previous diagram.
Merci d'avance
J'ai commenté le code pour expliquer.
NetBeans dit que les types Menu et JFrame sont incompatibles.
Ton problème vient très probablement de là."
Comment peux tu savoir que Menu est de type incompatible alors que tu n'as pas la déclaration de la classe Menu ? Il s'agit surement d'une classe Menu extends JFrame, dans ce cas un tel message ne serait pas affiché.
Sinon, rien à redire ;-)
Le problème peut très bien se trouver dans le code de la classe Menu, on ne sait pas.