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...