[JApplet] Interaction MySQL et applet /pb simple de resulset :o

Interaction MySQL et applet /pb simple de resulset :o [JApplet] - Java - Programmation

Marsh Posté le 20-03-2004 à 09:59:10    

Voici l'applet foireuse que j'ai essayé de faire[Résolu, voir en bas]

Citation :


 
import java.awt.*;
import java.awt.event.*;
 
import javax.swing.*;
 
 
public class TestDND extends JApplet
{
 public void init()
 
 
 
 
 {  JApplet f = new JApplet();
 
     
    DNDList sourceList = new DNDList();
     
    // add data to the source List
    DefaultListModel sourceModel = new DefaultListModel();
     
    sourceModel.addElement( "Source Item1" );
    sourceModel.addElement( "Source Item2" );
    sourceModel.addElement( "Source Item3" );
    sourceModel.addElement( "Source Item4" );
     
 
    JPanel sourcePanel = getListPanel(sourceList, "SourceList", sourceModel);  
     
    DNDList targetList = new DNDList();
     
 
    DefaultListModel targetModel = new DefaultListModel();
     
    targetModel.addElement( "Target Item1" );
    targetModel.addElement( "Target Item2" );
    targetModel.addElement( "Target Item3" );
    targetModel.addElement( "Target Item4" );
 
    JPanel targetPanel = getListPanel(targetList, "TargetList", targetModel);  
    JPanel mainPanel = new JPanel();
 
    mainPanel.add( sourcePanel );
    mainPanel.add( targetPanel );
 
   f.getContentPane().add( mainPanel );
 
 
 
  }
 
 
 
  private JPanel getListPanel(DNDList list, String labelName, DefaultListModel listModel ){  
        JPanel listPanel = new JPanel();
        JScrollPane scrollPane = new JScrollPane(list);
         
        list.setModel(listModel);    
        JLabel nameListName = new JLabel(labelName );
         
 
       
        return listPanel;
  }
   
}


 
 
Voici le programme d'origine qui fonctionne très bien
(source : http://www.ictp.trieste.it/~manual [...] eetal.html

Citation :

import java.awt.*;
import java.awt.event.*;
 
import javax.swing.*;
 
 
public class TestDND
{
  public static void main (String args[]) {
    TestDND testDND = new TestDND();
}
 
   
 public TestDND()
 {    
    JFrame f = new JFrame("Drag and Drop Lists" );
     
    DNDList sourceList = new DNDList();
     
     
    DefaultListModel sourceModel = new DefaultListModel();
     
    sourceModel.addElement( "Source Item1" );
    sourceModel.addElement( "Source Item2" );
    sourceModel.addElement( "Source Item3" );
    sourceModel.addElement( "Source Item4" );
     
   
    JPanel sourcePanel = getListPanel(sourceList, "SourceList", sourceModel);  
     
    DNDList targetList = new DNDList();
   
    DefaultListModel targetModel = new DefaultListModel();
     
    targetModel.addElement( "Target Item1" );
    targetModel.addElement( "Target Item2" );
    targetModel.addElement( "Target Item3" );
    targetModel.addElement( "Target Item4" );
     
    JPanel targetPanel = getListPanel(targetList, "TargetList", targetModel);  
    JPanel mainPanel = new JPanel();
 mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.X_AXIS));
    mainPanel.add( sourcePanel );
    mainPanel.add( targetPanel );
     
    f.getContentPane().add( mainPanel );
    f.setSize (300, 300);
    f.addWindowListener (new WindowAdapter() {
      public void windowClosing(WindowEvent e) {
        System.exit(0);
      }
    });
    f.setVisible (true);
  }
 
 
  private JPanel getListPanel(DNDList list, String labelName, DefaultListModel listModel ){  
        JPanel listPanel = new JPanel();
        JScrollPane scrollPane = new JScrollPane(list);
         
        list.setModel(listModel);    
        JLabel nameListName = new JLabel(labelName );
         
        listPanel.setLayout( new BorderLayout());
        listPanel.add(nameListName, BorderLayout.NORTH);
        listPanel.add( scrollPane, BorderLayout.CENTER);
       
        return listPanel;      
  }
   
}


Message édité par dalida le 27-03-2004 à 16:34:47
Reply

Marsh Posté le 20-03-2004 à 09:59:10   

Reply

Marsh Posté le 21-03-2004 à 11:13:38    

[:ula]
 
et quoi, on doit deviner l'erreur?

Reply

Marsh Posté le 21-03-2004 à 14:57:18    

Ca ne risque pas de fonctionner si tu supprimes des lignes par ci et par là !

Reply

Marsh Posté le 22-03-2004 à 19:13:05    

tu n'as pas besoin d'instancié JApplet comme tu le fais vu que ta classe herite deja de JApplet.  
 
vire donc le :
JApplet f = new JApplet();  
 
et remplace
 
f.getContentPane().add( mainPanel );  
par
getContentPane().add( mainPanel );  
 
ca devrait allé , enfin jdit ca j'ai pas vu le reste  [:veryfree]


Message édité par veryfree le 22-03-2004 à 19:14:36
Reply

Marsh Posté le 24-03-2004 à 16:23:01    

oui :sweat:  
pardon :sweat:  
now ça marche  :D  
 
par contre le contenu des DNDlist je dois maintenant le faire provenir d'une db mysql :sweat:  
J'ai installé MySQL Connector/J (la dernière stable) et je peux me connecter à la base avec un ptit programme. Donc ça c'est bon. Maintenant je vois pas du tout comment faire des requêtes dans l'applet :(  ptain chui grave une quiche c'est horrible
 
Faudrait que le contenu de chaque dndlist provienne d'un champ d'une table de la db, et que lorsque l'utilisateur déplaces les éléments ça met à jour un autre champ de la même table : par exemple, des restaurants dans le premier champ, le second indique s'il aime n'aime pas ou est neutre vis à vis de ces restaurants en fonction de la DNDlist où il les déplacent. Si Si ça peut être bien.
 
Bref, soit je le fais dans l'applet, soit en php je crée un  fichier texte qui rassemble les infos de la db, l'applet le réécrit en fonction des déplacements et je le récupère en php qui met à jour la base. Youhou. Le problème, je me demande ce qu'il se passe si deux utilisateurs le font simultanément?  
Enfin bref c'est pour mes études et pas pour une utilisation mais du coup ça doit être très cohérent et très fonctionnel. Je passe en soutenance mardi prochain et je sens que je vais jamais y arriver. Si quelqu'un a une adresse qui pourra me faire avançer, ou a du temps pour m'expliquer que faire je suis preneur. :sweat:  
 
 

Citation :

import java.awt.*;
import java.awt.event.*;  
 
import javax.swing.*;  
 
 
public class TestDND9 extends JApplet
{  
 public void init()
 
 
 
 
 {                
 
     
    DNDList sourceList = new DNDList();  
 
    // add data to the source List  
    DefaultListModel sourceModel = new DefaultListModel();  
     
    sourceModel.addElement( "Source Item1" );  
    sourceModel.addElement( "Source Item2" );  
    sourceModel.addElement( "Source Item3" );  
    sourceModel.addElement( "Source Item4" );
    sourceModel.addElement( "Source Item5" );
    sourceModel.addElement( "Source Item6" );
    sourceModel.addElement( "Source Item7" );
    sourceModel.addElement( "Source Item8" );
     
 
    JPanel sourcePanel = getListPanel(sourceList, "SourceList", sourceModel);  
     
    DNDList targetList = new DNDList();
 
 
    DefaultListModel targetModel = new DefaultListModel();  
     
    targetModel.addElement( "Target Item1" );  
    targetModel.addElement( "Target Item2" );  
    targetModel.addElement( "Target Item3" );  
    targetModel.addElement( "Target Item4" );  
 
    JPanel targetPanel = getListPanel(targetList, "TargetList", targetModel);
     
    DNDList target2List = new DNDList();
 
    DefaultListModel target2Model = new DefaultListModel();
     
    target2Model.addElement( "Target Item1" );
    target2Model.addElement( "Target Item2" );
    target2Model.addElement( "Target Item3" );
    target2Model.addElement( "Target Item4" );
 
    JPanel target2Panel = getListPanel(target2List, "Target2List", target2Model);
 
    JPanel mainPanel = new JPanel();  
 
    mainPanel.add( sourcePanel );  
    mainPanel.add( targetPanel );
    mainPanel.add( target2Panel );
     
 
    targetPanel.setPreferredSize(new Dimension(100,150));
    target2Panel.setPreferredSize(new Dimension(100,150));
    sourcePanel.setPreferredSize(new Dimension(200,150));
   getContentPane().add( mainPanel );
 
  }
 
 
   
  private JPanel getListPanel(DNDList list, String labelName, DefaultListModel listModel ){  
        JPanel listPanel = new JPanel();
        JScrollPane scrollPane = new JScrollPane(list);
         
        list.setModel(listModel);
        JLabel nameListName = new JLabel(labelName );
         
        listPanel.setLayout( new BorderLayout());
        listPanel.add(nameListName, BorderLayout.NORTH);
        listPanel.add( scrollPane, BorderLayout.CENTER);
 
        return listPanel;      
  }
 
 
}

Reply

Marsh Posté le 24-03-2004 à 16:30:34    

Euh, j'sais pas si c'est lumineux mais je viens de penser que je pourrais passer les infos en paramètre dans la page d'appel de l'applet :p  (un paramètre d'applet ça peut très bien être en php, enfin dynamique, nop?)
Je vois pas trop comment le faire mais bon ça c'est trouvable facilement. Par contre il reste toujours le problème de la mise à jour des données à la sortie de page :sweat:


Message édité par dalida le 24-03-2004 à 16:31:30
Reply

Marsh Posté le 24-03-2004 à 20:08:59    

dalida a écrit :

Euh, j'sais pas si c'est lumineux mais je viens de penser que je pourrais passer les infos en paramètre dans la page d'appel de l'applet :p  (un paramètre d'applet ça peut très bien être en php, enfin dynamique, nop?)
 


tout a fait :jap:

Reply

Marsh Posté le 24-03-2004 à 20:16:23    

veryfree a écrit :


tout a fait :jap:

jy arrive aps :(

Reply

Marsh Posté le 24-03-2004 à 20:17:13    

t'arrive pas a quoi au juste [:mmmfff]

Reply

Marsh Posté le 24-03-2004 à 20:46:14    

Mais tu es sortie de :
http://lion.zero.ad.jp/hanao/euro/monm-dalida.jpg
 
 
raaaah une morte-vivante !


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 24-03-2004 à 20:46:14   

Reply

Marsh Posté le 25-03-2004 à 11:37:48    

veryfree a écrit :

t'arrive pas a quoi au juste [:mmmfff]

a passer les infos en paramètre dans la page d'appel de l'applet, c'est bien en déclarant des int et en faisant un Integer.parseInt(getParameter...) ?
non? :(

Reply

Marsh Posté le 25-03-2004 à 13:32:31    

oui, mais verifi que ca retourne pas nul ton getParameter
 
et t'as quoi comme message?
 

Reply

Marsh Posté le 25-03-2004 à 14:50:49    

veryfree a écrit :

oui, mais verifi que ca retourne pas nul ton getParameter
 
et t'as quoi comme message?
 
 

rhoo chuis ridicule, c pa un int c un string keu je veux :whistle:  
pardon
Bon je test et jreviens m'plaindre...
Ya pas moyen de récupérer tout d'un coup, faut faire un getParameter pour chaque valeur? :sweat:

Reply

Marsh Posté le 25-03-2004 à 16:22:00    

oui :o

Reply

Marsh Posté le 25-03-2004 à 16:23:47    

Citation :

String yo = getParameter("src" );
    sourceModel.addElement(yo);


pkoi ça fonctionne pas simplement comme ça  :cry:
ça affiche rien, et src est en param name dans l'appel de l'applet pourtant :sweat:


Message édité par dalida le 25-03-2004 à 16:24:21
Reply

Marsh Posté le 25-03-2004 à 21:36:05    

System.out.print("yo:" + yo ); ?
 
bordel , on peux ps tout faire a ta place hein :heink:

Reply

Marsh Posté le 26-03-2004 à 10:49:20    

veryfree a écrit :

System.out.print("yo:" + yo ); ?
 
bordel , on peux ps tout faire a ta place hein :heink:

ah yest ça marche :whistle: pardon

Reply

Marsh Posté le 27-03-2004 à 16:33:25    

Bon là je comprends pas trop
 
J'ai une requête qui doit ne me renvoyer qu'un résultat et si je fais pas un "while (rs2.next())" ça  fonctionne  :cry:  
 
>ca fonctionne>
 

Citation :

rs2=stmt2.executeQuery("SELECT Bdescriptif FROM budget, profil_budget WHERE budget.id_budget=profil_budget.id_budget AND profil_budget.id_profil=\'"+profil+"\'" );
       
       
        while (rs2.next())  //tant qu'il y a des descriptifs
    {  
           SelectBudget = rs2.getString("Bdescriptif" );
       
 
       LstBudget.select(SelectBudget);


 
>ça fonctionne pas>
 

Citation :

rs2=stmt2.executeQuery("SELECT descriptif FROM budget, profil_budget WHERE budget.id_budget=profil_budget.id_budget AND profil_budget.id_profil=\'"+profil+"\'" );
 
 
 
       LstBudget.select(rs2.getString("descriptif" ));
        }       //on execute la requête pour récupérer le descriptif correspondant
        catch (SQLException ex) {}


 
J'ai essayé avec un

Citation :

if (rs2 == null) {
     SelectBudget = "moins de 10 euros";
 } else {
     SelectBudget = rs2.getString("Bdescriptif" );


mais c'est pareil, et je vois pas pourquoi faut que je fasse un while pour afficher une seule requête. Si voo plé c important que mon code y soit pas trop crade :sweat:


Message édité par dalida le 27-03-2004 à 16:33:59
Reply

Marsh Posté le 28-03-2004 à 16:48:49    

lorsque tu reçois un resulset c'est comme une liste avec un curseur sur l'objet courant. Faire un appel bouge le curseur de 1 et te renvoie true si il y a encore un résultat à lire. Au départ le curseurs est juste avant le premier résultat. Donc si tu es *SUR* que ton résultset te renvoie un et un seul élement (et pas 0) tu "peux" faire:
 

Code :
  1. selectBudget = rs2.next().getString("Bdescriptif" );

Reply

Sujets relatifs:

Leave a Replay

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