Interaction MySQL et applet /pb simple de resulset :o [JApplet] - Java - Programmation
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à !
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
Marsh Posté le 24-03-2004 à 16:23:01
oui
pardon
now ça marche
par contre le contenu des DNDlist je dois maintenant le faire provenir d'une db mysql
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.
Citation : import java.awt.*; |
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 (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
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 (un paramètre d'applet ça peut très bien être en php, enfin dynamique, nop?) |
tout a fait
Marsh Posté le 24-03-2004 à 20:46:14
Mais tu es sortie de :
raaaah une morte-vivante !
Marsh Posté le 25-03-2004 à 11:37:48
veryfree a écrit : t'arrive pas a quoi au juste |
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?
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?
Marsh Posté le 25-03-2004 à 14:50:49
veryfree a écrit : oui, mais verifi que ca retourne pas nul ton getParameter |
rhoo chuis ridicule, c pa un int c un string keu je veux
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?
Marsh Posté le 25-03-2004 à 16:23:47
Citation : String yo = getParameter("src" ); |
pkoi ça fonctionne pas simplement comme ça
ça affiche rien, et src est en param name dans l'appel de l'applet pourtant
Marsh Posté le 25-03-2004 à 21:36:05
System.out.print("yo:" + yo ); ?
bordel , on peux ps tout faire a ta place hein
Marsh Posté le 26-03-2004 à 10:49:20
veryfree a écrit : System.out.print("yo:" + yo ); ? |
ah yest ça marche pardon
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
>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+"\'" ); |
>ç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+"\'" ); |
J'ai essayé avec un
Citation : if (rs2 == null) { |
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
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 :
|
Marsh Posté le 20-03-2004 à 09:59:10
Voici l'applet foireuse que j'ai essayé de faire[Résolu, voir en bas]
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
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