Boites Jframe Modale

Signaler
Messages postés
29
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
2 avril 2007
-
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
-
Bonjour à tous.
Je vous explique mon problème. J'ai créé de multiples jFrame pour me permettre différentes tâches.
Pour faire une certaine sécurité, j'aimerai rendre une certaine jFrame modale,c'est à dire que sans valider cette jFrame , toutes les autres soient bloquées.
Voici mon code:

package abcences;
import java.sql.*;
import java.awt.*;
import java.io.*;
import javax.swing.*;




public class Authentification extends javax.swing.JFrame {
        
 Connection connectBD;  //declaration variables globales
 Statement sqlBD;
 ResultSet recordBD;


    public Authentification() {
        super ("Authentification de l'utilisateur   -----   I.U.T d'Elbeuf");
        initComponents();
        jDialog1.setModal(true);                                                                                 <---   pour rendre cette frame modale mais pas de résultat
    }

void connexion(){
        try {
                Class.forName("com.mysql.jdbc.Driver");  // Déclaration du connecteur
                                                                // pour la base de données MySQL
                connectBD = DriverManager.getConnection("jdbc:mysql://localhost:3306/absences","root",""); // Accès à la base 
                sqlBD=connectBD.createStatement();                                                         // de données MySQL
             }
        catch (SQLException s) {
                jTextField1.setText("Erreur SQL :" + s.toString() + "(" + s.getErrorCode() + ")"); // Message d'erreur
       }                                                                                          // soit de la conexion
 catch (Exception e) {                                                                      // soit de la requète
  jTextField1.setText("Erreur :" + e.toString() + "(" + e.getMessage() + ")"); 
       }
}


    private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {                                     


        connexion();


        try {
                recordBD=sqlBD.executeQuery("SELECT Nom,Prenom,password FROM Authentification;");
                recordBD.first();
                String champs_nom=(recordBD.getString(1));
                String champs_prenom=(recordBD.getString(2));
                String champs_password=(recordBD.getString(3));
               
                String nom = jTextField1.getText();
                String prenom = jTextField2.getText();
                String password = new String(jPasswordField1.getPassword());    System.out.println(password);




               
                int i=nom.compareTo(champs_nom);
                int j=prenom.compareTo(champs_prenom);
                int k=password.compareTo(champs_password);


                if(i==0){
                   if(j==0){
                       if(k==0){
                           dispose();
                       }else System.exit(0);
                   }else System.exit(0);
               }else System.exit(0);
            }


            catch (SQLException s) {
                jTextField1.setText("Erreur SQL :" + s.toString() + "(" + s.getErrorCode() + ")"); // Message d'erreur
                }                                                                                          // soit de la conexion
            catch (Exception e) {                                                                      // soit de la requète
  jTextField1.setText("Erreur :" + e.toString() + "(" + e.getMessage() + ")"); 
                }
    }                                    




    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Authentification().setVisible(true);
            }
        });
    }

9 réponses

Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
34
Salut:

Où est le code de la méthode initComponents ()?


________________________________________________________________________________
A.B. : 
"Dieu nous donne des mains, mais il ne bâtit pas les ponts
Messages postés
29
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
2 avril 2007

En faite cette méthode apparait automatiquement lorsque je crée une jframe dans netbeans. Il est automatiquemet ajouté.
Je ne sais pas si cela peut t'aider.
Merci pour ton aide.
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
34
Salut:

Prends le soi de spécifier le parent de cette boite de dialogue.

public JDialog (JFrame owner);


________________________________________________________________________________
A.B. : 
"Dieu nous donne des mains, mais il ne bâtit pas les ponts
Messages postés
545
Date d'inscription
lundi 10 mai 2004
Statut
Membre
Dernière intervention
28 septembre 2011
2
Salut,

Et l'avoir ne nous aiderait pas, tant le code généré est inbuvable >_<

Ce qui serait utile, c'est de voir le main complet (puisqu'apparement celui-ci ne sert qu'à tester l'affichage de la Frame.) Au cas ou les différentes Frame seraiet issues de processus différents (c'est à dire plusieurs méthodes main/appels à la commande java) j'ai bien peur que ça ne soit possible vu que  il y a execution dans des JFrame différentes.

Si tout est dans un seul Main , y a dans le pire des cas moyen de bidouiller à la porcky en faisant des setVisible(false) sur les autres Frame.

Et d'après la doc, utiliser un

setModalityType

public void setModalityType(Dialog.ModalityType type)

est plus conseillé que le setModal().

Fouille un peu, j'peux pas faire mieux avec ce que j'ai, désolé.

gmi19oj19
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
34
Salut:

Comme je ne sais pas le reste du code.

Il faut préciser:

JDialog jDialog1 = new JDialog (this);

the this référe au JFrame courant.


________________________________________________________________________________
A.B. : 
"Dieu nous donne des mains, mais il ne bâtit pas les ponts
Messages postés
29
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
2 avril 2007

Désolé vous avez raison, je vais etre plus concis.
Voici le code de mon main général:


package abcences;
import java.sql.*;
import abcences.Authentification;

public class Main {
    
    public Main() {
    }

    public static void main(String[] args) {                                                                        C'est le code de mon main, il me lance mes différentes frames

        Authentification authentification=new Authentification();
        Affichage Acceuil = new Affichage();
       
        authentification.show();
        Acceuil.show();
    }
}
Messages postés
29
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
2 avril 2007

Pour résumer, j'ai mon main principal que je viens de vous donner en dessus.
Dans ce main, j'appelle la frame authentification et acceuil. La frame acceuil est une sorte de page d'acceuil (il y a des bouton , des jtextfiels....)
Dans la frame authentification (que je vous ai donné en dessus) j'ai des textfields des jlabel...

Ce que j'aurais voulu c'est que la frame authentification soit modale, comme çà quand je lance le main, je ne pourrais rien faire d'autre que de renseigner la frame authentification. La frame acceuil ne serai accessible qu'après.
J'espère avoir été plus précis et désolé pour le code de tout à l'air qui est vrai, est un peut incompréhensible comme ca.
Merci.
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
34
Salut:

Cherches dans ton code, l'instruction où il y a création de ton objet jDialog1.

JDialog jDialog = new ...;

Remplaces celle-ci par


JDialog jDialog1 = new JDialog (this);

Maintenant, la relation parent-enfant est établie.

Fin ...






________________________________________________________________________________
A.B. : 
"Dieu nous donne des mains, mais il ne bâtit pas les ponts
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
34
Salut:



Est ce que ça marche?

________________________________________________________________________________
A.B. : 
"Dieu nous donne des mains, mais il ne bâtit pas les ponts