Partage
  • Partager sur Facebook
  • Partager sur Twitter

requete sur postgreSQL a partir de checkbox dynamique

    22 mars 2010 à 12:54:10

    Salut tout le monde,

    Voilà je vous expose mon 'petit problème' mais qui commence à me prendre un peu la tête. Je suis sûr que pour certain cela va être d'une facilité déconcertante de me répondre alors je vous remercie d'avance.

    Bon voilà, j'essaie de programmer un gestionnaire de ma base de donnée directement à partir du programme JAVA (j'utilise eclipse) et le tout avec une interface graphique faite avec swing.

    Le principe c'est donc de créer les colonnes de ma table, que ces dernières se retrouvent affichées sous formes de CheckBox. Jusque là tout roule. Cependant une fois crées elles doivent pouvoir être supprimé via mon bouton effacé et me permettre de faire une recherche pour fouiller dans ma base de donnée. Voila pour l'idée générale.

    Mon problème c'est que j'arrive a créer mes checkbox, les affichées mais je n'arrive pas a créer ma requête pour me permettre de rechercher dans ma base de données.

    Voilà une partie du code :
    Création de mes checkbox dynamiques :

    public fenetreBase(){
    		try {
    			Class.forName("org.postgresql.Driver");
    			System.out.println("DRIVER OK ! ");
    			
    			String url = "jdbc:postgresql://localhost:5432/base";
    			String user = "postgres";
    			String passwd = "postgres";
    			
    			Connection conn = DriverManager.getConnection(url, user, passwd);
    			System.out.println("Connection effective !");			
    			
    			Statement state = conn.createStatement();
    			
    			ResultSet result = state.executeQuery("SELECT * FROM client");
    			//On récupère les MetaData
    			ResultSetMetaData resultMeta = result.getMetaData();
    			
    			nbColonne = resultMeta.getColumnCount()+1;
    			JCheckBox[] truc = new JCheckBox[nbColonne];
    			String[] temp = new String[nbColonne];
    			//On affiche le nom des colonnes
    			for(int i = 1, j =30, k =10; i <=  resultMeta.getColumnCount(); i++,j=j+20){
    				truc[i]= new JCheckBox(resultMeta.getColumnName(i));
    				temp[i]=new String(resultMeta.getColumnName(i));
    				containerBase.add(truc[i]);
    				truc[i].addActionListener(new ecouteurCase());
    				Insets insets = containerBase.getInsets();
    				Dimension size = truc[i].getPreferredSize();
    		        truc[i].setBounds(k + insets.left, j + insets.top,
    		                    size.width, size.height);
    				}
    				result.close();
                    state.close();
                    
    		}
    		catch (Exception e) {
    			e.printStackTrace();
    		}
    		
    		
    		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		Toolkit outil = getToolkit();
    		contourBase.setSize(outil.getScreenSize()); 
    		
    		containerBase.setBackground(Color.CYAN);
    		contourBase.setContentPane(containerBase);
    		
    		containerBase.add(ajouter);
    		containerBase.add(supprimer);
    		containerBase.add(liste);
    		containerBase.add(texte);
    		
    		ajouter.addActionListener(new ecouteurAjouter());
    		supprimer.addActionListener(new ecouteurSupprimer());
    		
    		containerBase.setLayout(null);
    		Insets insets = containerBase.getInsets();
            Dimension size = ajouter.getPreferredSize();
            ajouter.setBounds(600 + insets.left, 720 + insets.top,
                        size.width, size.height);
            size = supprimer.getPreferredSize();
            supprimer.setBounds(800 + insets.left, 720 + insets.top,
                        size.width, size.height);
            size = liste.getPreferredSize();
            liste.setBounds(insets.left, insets.top,
                        size.width, size.height);
            size = texte.getPreferredSize();
            texte.setBounds(600 + insets.left, 650 + insets.top,
                        size.width, size.height);
    
    		contourBase.setVisible(true);
    	}
    


    La tout est OK
    maintenant mon problème c'est que lorsque je cherche a ajouter à ma condition pour la requête je fais :
    class ecouteurCase implements ActionListener{
    		public void actionPerformed (ActionEvent a){
    				if (((JCheckBox)a.getSource()).isSelected()==true){
    					chaine += ((JCheckBox)a.getSource()).getText();
    					}
    				else{
    					chaine=chaine;
    				}
    				
    		}
    	}
    

    cela fonctionne sauf que lorsque je selectionne une checkbox 'par erreur' et que donc je la déséléctionne forcément ma chaine est déjà incrémenté et donc ca ne 'corrige' pas ma requête et laisse la checkbox dans ma chaine.

    Donc si vous avez des suggestions je suis plus que preneur. Je suis sûr que je passe à côté d'un système simple mais je suis embrouillé à force de me prendre la tête sur ca.

    Merci pour vos réponses.
    <code type="java"><code type="java">
    
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      22 mars 2010 à 21:43:48

      orienté objet = séparation des responsabilité, on ne mélange pas du jdbc avec du swing.
      • Partager sur Facebook
      • Partager sur Twitter

      requete sur postgreSQL a partir de checkbox dynamique

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown