Enchainement de comboSelect

Enchainement de comboSelect - Java - Programmation

Marsh Posté le 13-07-2011 à 10:08:54    

Bonjour
 
je suis débutante en java et swing. Je dois développer un projet en pur java avec swing.
Le but du jeu est de faire une première sélection à partir d'une selection MySQL et de cette selection , faire un deuxième select.
Pour faire simple le résultat du premier select entraine un deuxième select qui lui même en entraine un 3eme qui en enchaine un 4eme .
Pour l'instant je bute déjà sur le premier.
En effet, la selection se fait bien, mais après que la deuxième selection se fasse (je n'ai pas tout enchainé juste 1 et 2).
 
Dans l'ordre : le programme me lance le combo, il fait la suite de la procédure, puis me donne la main pour selectionner.
 
Il me met une erreur "base nulle "ce qui est logique puisque je n'ai aps pu la selectionner. Par contre le SOP se fait bien mais après .
 
Ces procédures font parties d'une ensemble.
 
Je développe avec eclipse.
 
Pouvez vous me dire ou je buggue.
 
Merci  
 
voilà le code de ma classe d'appel

Citation :

import java.awt.*;
import java.io.*;
import java.sql.*;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.*;
 
 
import java.util.Vector;
 
@SuppressWarnings("serial" )
class TestPar extends JPanel
{
 static Connection connection;
 static Statement statement;
 static Connection connectiont;
 static Statement statementt;
 static ResultSet resultset;
 static ResultSet resultsett;
 static String sortie ="";
 
 static String base;
 static String table;
 static String coltab;
 static int nbligne;
 public static Vector vect1 = new Vector(10);
 public static Vector vect2 = new Vector(10);
 public static void main(String[] args)
 {
 
  /*********************************************************************************************************/  
  /************************************************ Pannel de saisie ***************************************/  
  /*********************************************************************************************************/  
  {
   // creation du vecteur pour liste dÔøΩroulante
   PanneauSaisie panneau = new PanneauSaisie();
   int reponse = JOptionPane.showConfirmDialog(null, panneau,
     "CONNEXION A MYSQL", JOptionPane.OK_CANCEL_OPTION,
     JOptionPane.PLAIN_MESSAGE);
 
 
   /*********************************************************************************************************/  
   /************************************************ recuperation base             ***************************/  
   /*********************************************************************************************************/  
   int i = 1;
   int j = 0;
   String utilisateur = System.getProperty("user.name" );     // recuperation du nom du compte linux
   String repac = System.getProperty("user.home" );      // recuperation du repertoire d'accueil linux
   String databaseUser = PanneauSaisie.saisieLogin.getText();   // recuperation compte utilisateur MySql
   String databasePassword = PanneauSaisie.saisiePassword.getText(); // recuperation mot de passe utilisateur MySql
   String databaseServerSystem = "localhost:3306";      // Port pour MySQL : 3306
   String databaseName = "information_schema";   // recuperation du nom de la base
 
   try {
    // charge le driver database
    Class.forName("com.mysql.jdbc.Driver" );
 
    // creation de l'URL de sortie comprenant le login / mot de passe de l'utilisateur saisi dans le panneauContact
    //  String databaseUrl = "jdbc:mysql://" + databaseServerSystem + "/" + databaseName + "?user=" + databaseUser + "&password="   + databasePassword;  
    /************************************************************************/
    Date maintenant = new Date();
    SimpleDateFormat formatDate =  new SimpleDateFormat("dd-MM-yy" );
    String dateFormatee = formatDate.format(maintenant);
    String dateFormatee1 = formatDate.format(maintenant);
 
    // Affiche la date en format aaaammjj pour integrer dans le nom de fichier
    formatDate = new SimpleDateFormat("yyyyMMdd" );
    dateFormatee = formatDate.format(maintenant);
    /*********************************************************************************************************/  
    {
     PanneauSaisie panneauC = new PanneauSaisie();
 
    }
    formatDate = new SimpleDateFormat("kk'h' mm'm' ss's'" );
    dateFormatee1 = formatDate.format(maintenant);
 
    try {
     /*********************************************************************************************************/  
     {
      PanneauSaisie panneauI = new PanneauSaisie();
      //   JOptionPane.showMessageDialog(null, "debut de procedure : "+ dateFormatee1 + "\n"  );
 
     }
     // charge le driver database
     Class.forName("com.mysql.jdbc.Driver" );
 
     // creation de l'URl de sortie comprenant le login / mot de passe de l'utilisateur saisi dans le panneauContact
     String databaseUrl = "jdbc:mysql://" + databaseServerSystem + "/" + databaseName + "?user=" + databaseUser + "&password="+ databasePassword;  
 
     /******************************************************************************************************************/
     // Creer la connexion database
     connection = DriverManager.getConnection(databaseUrl);
 
     // Creer declaration
     statement = connection.createStatement();
 
     /* Envoi du query et recuperation des resultats
      */
     resultset = statement.executeQuery("SELECT DISTINCT(TABLE_SCHEMA) FROM `TABLES` WHERE `TABLE_SCHEMA` not like ( 'information_schema') and `TABLE_SCHEMA` not like ( 'mysql')and `TABLE_SCHEMA` not like ( 'phpmyadmin')" );
 
     /****************** recuperation de la liste des bases disponibles *************************************/
 
     while (resultset.next()  )  
     {
     // base = resultset.getString(1); // liste des bases disponibles
      vect1.addElement(resultset.getString(1)) ;
     }  
     /***************************************************  saisie de la base ***********************************************************************************/  
     ComboSelect select = new ComboSelect();
     select.pack();
     select.setVisible(true);
     /************************************ recuperation de la liste des table dans la base *******************************************/
     System.out.println("testpar.base =" +  base);
     System.out.println("j'envoie le choix de table" );
// normalement ici j'enchaine sur un 2eme choix lié au premier
    }  
 
    finally{
 
     /*********************************************************** controle d'erreur ****************************************************************************/    
 
    }
   } catch (Exception e) {
    e.printStackTrace();} finally {
     try {
      if(resultset != null) {
       resultset.close();
      }
      if(statement != null) {
       statement.close();  
      }
      if(connection != null) {
       connection.close();
      }
     } catch (SQLException e) {
      e.printStackTrace();} finally {
      }
    }
  }
 }
}  


 
et mon comboselect

Citation :


import java.awt.Container;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
 
public class ComboSelect extends JFrame {
 public static String basel;
 
 private Container c;
 
 private DefaultComboBoxModel comboModel;
 protected JComboBox combo;
 
 private JTextField display;
 
 public ComboSelect() {
  super("Demo de JComboBox" );
  initialize();
 }
 
 private void initialize() {
  c = getContentPane();
 
  setDefaultCloseOperation(EXIT_ON_CLOSE );
  comboModel = new DefaultComboBoxModel();
 
  int ib = 0;
 
 
  while (ib < TestPar.vect1.size() )
  {
   comboModel.addElement(TestPar.vect1.elementAt(ib));
   ib++;
 
  }
    combo = new JComboBox(comboModel);
  combo.addActionListener(new ActionListener() {
 
   public void actionPerformed(ActionEvent e) {
    TestPar.base = ((String)combo.getSelectedItem());
    // System.out.println("base " + basel);
   }
  });
  JPanel jp = new JPanel();
  jp.setPreferredSize(new Dimension(320, 200));
  jp.add(combo);
  c.add(jp);
 }
 
}


 
et le résultat de mes SOP
testpar.base =null
j'envoie le choix de table

Reply

Marsh Posté le 13-07-2011 à 10:08:54   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed