PB dans main

cs_thanatos67 Messages postés 51 Date d'inscription vendredi 3 décembre 2004 Statut Membre Dernière intervention 13 novembre 2008 - 5 févr. 2007 à 16:03
cs_thanatos67 Messages postés 51 Date d'inscription vendredi 3 décembre 2004 Statut Membre Dernière intervention 13 novembre 2008 - 6 févr. 2007 à 13:28
Salut à toi lecteur. Oui toi! J'ai un petit soucis.

J'ai déjà eu un premier soucis résolu grace à l'aide de TWINUTS (encore merci). J'ai une classe dans laquelle se trouve mon main et qui appelle ma classe Identification.
je vais donner le code de la classe Identification et un bout de la classe appelante :

Identification :

package stat_meteo;
import java.awt.BorderLayout;
import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.Dimension;
import javax.swing.JLabel;
import java.awt.Rectangle;
import javax.swing.JTextField;
import java.awt.Point;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.*;

import javax.swing.JPasswordField;
import javax.swing.JButton;

public class Identification extends JFrame {

    private static final long serialVersionUID = 1L;

    private JPanel jContentPane = null;

    private JLabel jLEnterId = null;

    private JTextField jTFEnter_log = null;

    private JPasswordField jPFPass = null;

    public JButton jBIdentification = null;
   
    String SLog = null;
    String SPass = null;
    String Droit = null;
    Statement stmt = null;
    int ligne;

    /**
     * This is the default constructor
     */
    public Identification() {
        super();
        initialize();
        try {
            // tenter de récupérer le driver Mysql
            Class.forName("com.mysql.jdbc.Driver").newInstance();   
            System.out.println("Chargement du pilote Mysql réussi");
        }
        catch(Exception ee) {
           System.err.print("Erreur de chargement du pilote : ");
           System.err.println(ee.getMessage());
        }
    }

    /**
     * This method initializes this
     *
     * @return void
     */
    private void initialize() {
        this.setSize(356, 293);
        this.setContentPane(getJContentPane());
        this.setTitle("Identification");
    }

    /**
     * This method initializes jContentPane
     *
     * @return javax.swing.JPanel
     */
    private JPanel getJContentPane() {
        if (jContentPane == null) {
            jLEnterId = new JLabel();
            jLEnterId.setBounds(new Rectangle(75, 45, 196, 23));
            jLEnterId.setText("Entrez vos identifiants :");
            jContentPane = new JPanel();
            jContentPane.setLayout(null);
            jContentPane.add(jLEnterId, null);
            jContentPane.add(getJTFEnter_log(), null);
            jContentPane.add(getJPFPass(), null);
            jContentPane.add(getJBIdentification(), null);
        }
        return jContentPane;
    }

    /**
     * This method initializes jTFEnter_log   
     *    
     * @return javax.swing.JTextField   
     */
    private JTextField getJTFEnter_log() {
        if (jTFEnter_log == null) {
            jTFEnter_log = new JTextField();
            jTFEnter_log.setSize(new Dimension(196, 23));
            jTFEnter_log.setLocation(new Point(75, 90));
        }
        return jTFEnter_log;
    }

    /**
     * This method initializes jPFPass   
     *    
     * @return javax.swing.JPasswordField   
     */
    private JPasswordField getJPFPass() {
        if (jPFPass == null) {
            jPFPass = new JPasswordField();
            jPFPass.setBounds(new Rectangle(75, 135, 196, 23));
        }
        return jPFPass;
    }

    /**
     * This method initializes jBIdentification   
     *    
     * @return javax.swing.JButton   
     */
    private JButton getJBIdentification() {
        if (jBIdentification == null) {
            jBIdentification = new JButton();
            jBIdentification.setBounds(new Rectangle(105, 180, 135, 32));
            jBIdentification.setText("S'identifier");
            jBIdentification.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent e) {
                    SLog = jTFEnter_log.getText();
                    SPass = new String(jPFPass.getPassword());
                    try{
                        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/meteo?user=root&password=thana67");
                        String sql = "SELECT nom,pass,droits FROM utilisateurs WHERE nom='"+SLog+"' AND pass='"+SPass+"';";
                        stmt = conn.createStatement();
                        ResultSet RSet = stmt.executeQuery(sql);
                        RSet.last();            //Saut sur la derniere rangée...
                        ligne = RSet.getRow();    //récupération du nombre de résultat
                        System.out.println(Droit);
                        if(ligne!=0){
                            RSet.first();
                            Droit = RSet.getString(3);
                            System.out.println(Droit);    //affichage des droits de cet user
                            Ident(Droit);
                        }
                        conn.close();
                    }
                    catch(SQLException ex){
                        System.out.println("SQLException: " + ex.getMessage());
                        System.out.println(ligne);
                        System.out.println(Droit);
                    }
                    System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
                }
            });
        }
        return jBIdentification;
    }
   
    public static String Ident(String droit){
        System.out.println(droit);
        return droit;
    }

}  //  @jve:decl-index=0:visual-constraint="10,10"

Dans la classe appelante(meteorologie) :

package stat_meteo;
............
Identification Ident_fen = null;
............

public static void main(String[] args) {
        // TODO Raccord de méthode auto-généré
       
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                meteorologie thisClass = new meteorologie();
                thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                thisClass.setVisible(true);
                while(thisClass.Ident_fen.Droit==null){
                   
                }
                if(thisClass.Ident_fen.Droit=="admin"){
                    jTPOngletConfig.setVisible(true);
                }
                if(thisClass.Ident_fen.Droit=="user"){
                    jPUtilisateur.setVisible(true);
                }
            }
        });       
    }

La partie en gras est celle qui me pose problème. Je veux que ma classe "meteorologie" affiche  soit jTPOngletConfig, soit jPUtilisateur, selon ce qu'il y a dans "String Droit". Le pb c'est qu'il n'y a que la bordure qui s'affiche. Je pense que ça doit venir du "while". Je vois pas comment contourner le pb. J'ai essayé en mettant dans la classe appelante un "actionListener" vers le bouton de la classe Identification, mais ça ne donne rien. J'ai mis l'arborescence pour aider la compréhension. Merci d'avance.

au bout du clavier...

2 réponses

JBAware Messages postés 174 Date d'inscription lundi 23 septembre 2002 Statut Membre Dernière intervention 6 avril 2011 1
5 févr. 2007 à 18:51
Salut,

ton problème c'est ça :
--------------------------------------------------------------
    public static String Ident(String droit){
        System.out.println(droit);
        return droit;
    }
---------------------------------------------------------------
Je vais pas rentrer dans des cours poussés mais si tu mettais plutot :
---------------------------------------------------------------
    public static String Ident(String droit){
        this.Droit=droit;  // (CF ma dernière remarque d'ailleurs)
    }
---------------------------------------------------------------
Je pense que ca marcherait mieux

Enfin ... la nomenclature veut que les variables et méthodes commencent par une minuscule et non par une majuscule.

Bon j'espere que ca t'aidera
JB...
0
cs_thanatos67 Messages postés 51 Date d'inscription vendredi 3 décembre 2004 Statut Membre Dernière intervention 13 novembre 2008
6 févr. 2007 à 13:28
Salut.

En effet j'avais oublié cette histoire de Maj/min. Merci pour ce rappel.pour ce qui est de cette fonction je l'ai supprimé vu qu'elle ne me sert à rien (je croyais l'avoir fait déjà avant...). Il n'y a pas toutefois pas de changement...

au bout du clavier...
0
Rejoignez-nous