Boites Jframe Modale

cs_Erwan76 Messages postés 29 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 2 avril 2007 - 25 mars 2007 à 19:09
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 - 26 mars 2007 à 22:16
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

Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
25 mars 2007 à 19:31
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
0
cs_Erwan76 Messages postés 29 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 2 avril 2007
25 mars 2007 à 19:35
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.
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
25 mars 2007 à 19:47
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
0
gmi19oj19 Messages postés 545 Date d'inscription lundi 10 mai 2004 Statut Membre Dernière intervention 28 septembre 2011 2
25 mars 2007 à 19:48
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
25 mars 2007 à 19:51
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
0
cs_Erwan76 Messages postés 29 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 2 avril 2007
25 mars 2007 à 20:18
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();
    }
}
0
cs_Erwan76 Messages postés 29 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 2 avril 2007
25 mars 2007 à 20:23
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.
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
25 mars 2007 à 20:30
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
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
26 mars 2007 à 22:16
Salut:



Est ce que ça marche?

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