Mise à jour d'une JList initiée via une base de donnée ?
3 réponses
David Tran Quang Ty
Bonjour à tous,
Toujours dans le cadre de mon developpement d'applet avec une JList,
j'aimerai savoir si il est possible de la mettre à jour en temps plus ou
moins réel... Avec la JList que j'ai actuellement, qui est crée, puis
initiée d'après les données d'une base de données MySQL, j'avais pensé
qu'en rappelant simplement la fonction qui l'avait créée me permettrait
de créer une nouvelle JList avec les élèments fraîchement changé...
Seulement, cela n'a pas l'air de fonctionner comme je le souhaiterais -_-
Ce qui se passe actuellement, c'est que lorsque je rappelle la fonction,
via un bouton rafraichir subtilement placé, qui a permis de créer cette
JList, les informations fournie par la console m'indique que le vecteur
a bien récupéré les données mises à jour de la base de données, mais il
semblerait que la liste ne veuille pas se réinitialiser... Même avec un
repaint, cela ne me donne pas ce que je voudrais.
L'erreur donnée par la console est la suivante :
Exception in thread "AWT-EventQueue-3" java.lang.NullPointerException
at java.util.StringTokenizer.<init>(Unknown Source)
at java.util.StringTokenizer.<init>(Unknown Source)
at ListeTable$1.valueChanged(ListeTable.java:358)
at javax.swing.JList.fireSelectionValueChanged(Unknown Source)
at javax.swing.JList$ListSelectionHandler.valueChanged(Unknown Source)
at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source)
at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source)
at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source)
at javax.swing.DefaultListSelectionModel.changeSelection(Unknown Source)
at javax.swing.DefaultListSelectionModel.changeSelection(Unknown Source)
at javax.swing.DefaultListSelectionModel.setSelectionInterval(Unknown
Source)
at javax.swing.JList.setSelectionInterval(Unknown Source)
at
javax.swing.plaf.basic.BasicListUI$Handler.adjustFocusAndSelection(Unknown
Source)
at javax.swing.plaf.basic.BasicListUI$Handler.mousePressed(Unknown Source)
at java.awt.AWTEventMulticaster.mousePressed(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Exception in thread "AWT-EventQueue-3" java.lang.NullPointerException
at java.util.StringTokenizer.<init>(Unknown Source)
at java.util.StringTokenizer.<init>(Unknown Source)
at ListeTable$1.valueChanged(ListeTable.java:358)
at javax.swing.JList.fireSelectionValueChanged(Unknown Source)
at javax.swing.JList$ListSelectionHandler.valueChanged(Unknown Source)
at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source)
at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source)
at javax.swing.DefaultListSelectionModel.setValueIsAdjusting(Unknown
Source)
at javax.swing.JList.setValueIsAdjusting(Unknown Source)
at javax.swing.plaf.basic.BasicListUI$Handler.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Le code la fonction dissidente :
public void makeTableJeu() throws Exception
{
int i =0;
realData = new Vector();
list = null;
try
{
conn1 = new connex();
}
catch(Exception e)
{ System.err.println("\n*** Exception caught in Load()");
throw e;
}
list = new JList(realData);
list.setFont(f);
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
list.setVisibleRowCount(-1);
list.setSeletedIndex(0);
list.addListSelectionListener(new ListSelectionListener()
{
public void valueChanged( ListSelectionEvent ee)
{
String str1 = (String)list.getSelectedValue();
StringTokenizer st = new StringTokenizer(str1);
String str = st.nextToken();
L'appel à la fonction est le suivant, dans un ActionPerfomed :
if (ae.getSource() == rafraichir)
{
try {
makeTableJeu();
list.repaint();
}
catch(Exception e)
{
System.err.println("\n*** Exception caught in makeTableJeu in init()");
}
Je me doute que mon approche est un peu cavalière, ce qui explique
sûrement le pourquoi du comment de mon erreur, mais je dois avouer ne
pas trop voir comment corriger ça...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
JScoobyCed
David Tran Quang Ty wrote:
Bonjour,
Votre list n'a pas de value selectionnee quand vous rafraichissez:
L'erreur donnée par la console est la suivante :
Exception in thread "AWT-EventQueue-3" java.lang.NullPointerException at java.util.StringTokenizer.<init>(Unknown Source) at java.util.StringTokenizer.<init>(Unknown Source)
Cela permet de voir que l'erreur est dans le constructeur de StringTokenizer:
{ public void valueChanged( ListSelectionEvent ee) { String str1 = (String)list.getSelectedValue(); StringTokenizer st = new StringTokenizer(str1);
public StringTokenizer(String str) { this(str, " tnrf", false); }
La ligne maxPosition = str.length(); renvoie un NullPointerException si la chaine donnee au constructeur est NULL
(String)list.getSelectedValue() renvoie donc NULL
-- JSC
David Tran Quang Ty wrote:
Bonjour,
Votre list n'a pas de value selectionnee quand vous rafraichissez:
L'erreur donnée par la console est la suivante :
Exception in thread "AWT-EventQueue-3" java.lang.NullPointerException
at java.util.StringTokenizer.<init>(Unknown Source)
at java.util.StringTokenizer.<init>(Unknown Source)
Cela permet de voir que l'erreur est dans le constructeur de
StringTokenizer:
{
public void valueChanged( ListSelectionEvent ee)
{
String str1 = (String)list.getSelectedValue();
StringTokenizer st = new StringTokenizer(str1);
public StringTokenizer(String str) {
this(str, " tnrf", false);
}
Votre list n'a pas de value selectionnee quand vous rafraichissez:
L'erreur donnée par la console est la suivante :
Exception in thread "AWT-EventQueue-3" java.lang.NullPointerException at java.util.StringTokenizer.<init>(Unknown Source) at java.util.StringTokenizer.<init>(Unknown Source)
Cela permet de voir que l'erreur est dans le constructeur de StringTokenizer:
{ public void valueChanged( ListSelectionEvent ee) { String str1 = (String)list.getSelectedValue(); StringTokenizer st = new StringTokenizer(str1);
public StringTokenizer(String str) { this(str, " tnrf", false); }
La ligne maxPosition = str.length(); renvoie un NullPointerException si la chaine donnee au constructeur est NULL
(String)list.getSelectedValue() renvoie donc NULL
-- JSC
Symon
Oui, il suffit de mettre à jour son modèle (voir doc DefaultListModel par exemple).
Par contre, il faut éviter de se connecter directement à une base de donnée via un applet, qui n'est sensé dialoguer que sur le port 80. Mieux vaut passer par une servlet, qui alimentera par exemple ton applet via un flux XML ou autre.
Par rapport à ton erreur de compilation, elle est très claire : tu essayes de créer un StringTokenizer à partir d'une référence nulle (classe ListeTable, ligne 358).
A+
Symon
David Tran Quang Ty wrote:
Bonjour à tous,
Toujours dans le cadre de mon developpement d'applet avec une JList, j'aimerai savoir si il est possible de la mettre à jour en temps plus ou moins réel... Avec la JList que j'ai actuellement, qui est crée, puis initiée d'après les données d'une base de données MySQL, j'avais pensé qu'en rappelant simplement la fonction qui l'avait créée me permettrait de créer une nouvelle JList avec les élèments fraîchement changé... Seulement, cela n'a pas l'air de fonctionner comme je le souhaiterais -_-
Ce qui se passe actuellement, c'est que lorsque je rappelle la fonction, via un bouton rafraichir subtilement placé, qui a permis de créer cette JList, les informations fournie par la console m'indique que le vecteur a bien récupéré les données mises à jour de la base de données, mais il semblerait que la liste ne veuille pas se réinitialiser... Même avec un repaint, cela ne me donne pas ce que je voudrais.
L'erreur donnée par la console est la suivante :
Exception in thread "AWT-EventQueue-3" java.lang.NullPointerException at java.util.StringTokenizer.<init>(Unknown Source) at java.util.StringTokenizer.<init>(Unknown Source) at ListeTable$1.valueChanged(ListeTable.java:358) at javax.swing.JList.fireSelectionValueChanged(Unknown Source) at javax.swing.JList$ListSelectionHandler.valueChanged(Unknown Source) at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source) at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source) at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source) at javax.swing.DefaultListSelectionModel.changeSelection(Unknown Source) at javax.swing.DefaultListSelectionModel.changeSelection(Unknown Source) at javax.swing.DefaultListSelectionModel.setSelectionInterval(Unknown Source) at javax.swing.JList.setSelectionInterval(Unknown Source) at javax.swing.plaf.basic.BasicListUI$Handler.adjustFocusAndSelection(Unknown Source) at javax.swing.plaf.basic.BasicListUI$Handler.mousePressed(Unknown Source) at java.awt.AWTEventMulticaster.mousePressed(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) Exception in thread "AWT-EventQueue-3" java.lang.NullPointerException at java.util.StringTokenizer.<init>(Unknown Source) at java.util.StringTokenizer.<init>(Unknown Source) at ListeTable$1.valueChanged(ListeTable.java:358) at javax.swing.JList.fireSelectionValueChanged(Unknown Source) at javax.swing.JList$ListSelectionHandler.valueChanged(Unknown Source) at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source) at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source) at javax.swing.DefaultListSelectionModel.setValueIsAdjusting(Unknown Source) at javax.swing.JList.setValueIsAdjusting(Unknown Source) at javax.swing.plaf.basic.BasicListUI$Handler.mouseReleased(Unknown Source) at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)
Le code la fonction dissidente :
public void makeTableJeu() throws Exception { int i =0;
realData = new Vector(); list = null;
try { conn1 = new connex(); } catch(Exception e) { System.err.println("n*** Exception caught in Load()"); throw e; }
list = new JList(realData); list.setFont(f); list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); list.setVisibleRowCount(-1); list.setSeletedIndex(0);
list.addListSelectionListener(new ListSelectionListener() { public void valueChanged( ListSelectionEvent ee) { String str1 = (String)list.getSelectedValue(); StringTokenizer st = new StringTokenizer(str1); String str = st.nextToken();
L'appel à la fonction est le suivant, dans un ActionPerfomed :
if (ae.getSource() == rafraichir) {
try { makeTableJeu(); list.repaint(); } catch(Exception e) { System.err.println("n*** Exception caught in makeTableJeu in init()"); }
Je me doute que mon approche est un peu cavalière, ce qui explique sûrement le pourquoi du comment de mon erreur, mais je dois avouer ne pas trop voir comment corriger ça...
Toute aide est donc la bienvenue ^^
Merci d'avance ^^
Oui, il suffit de mettre à jour son modèle (voir doc DefaultListModel
par exemple).
Par contre, il faut éviter de se connecter directement à une base de
donnée via un applet, qui n'est sensé dialoguer que sur le port 80.
Mieux vaut passer par une servlet, qui alimentera par exemple ton applet
via un flux XML ou autre.
Par rapport à ton erreur de compilation, elle est très claire : tu
essayes de créer un StringTokenizer à partir d'une référence nulle
(classe ListeTable, ligne 358).
A+
Symon
David Tran Quang Ty wrote:
Bonjour à tous,
Toujours dans le cadre de mon developpement d'applet avec une JList,
j'aimerai savoir si il est possible de la mettre à jour en temps plus ou
moins réel... Avec la JList que j'ai actuellement, qui est crée, puis
initiée d'après les données d'une base de données MySQL, j'avais pensé
qu'en rappelant simplement la fonction qui l'avait créée me permettrait
de créer une nouvelle JList avec les élèments fraîchement changé...
Seulement, cela n'a pas l'air de fonctionner comme je le souhaiterais -_-
Ce qui se passe actuellement, c'est que lorsque je rappelle la fonction,
via un bouton rafraichir subtilement placé, qui a permis de créer cette
JList, les informations fournie par la console m'indique que le vecteur
a bien récupéré les données mises à jour de la base de données, mais il
semblerait que la liste ne veuille pas se réinitialiser... Même avec un
repaint, cela ne me donne pas ce que je voudrais.
L'erreur donnée par la console est la suivante :
Exception in thread "AWT-EventQueue-3" java.lang.NullPointerException
at java.util.StringTokenizer.<init>(Unknown Source)
at java.util.StringTokenizer.<init>(Unknown Source)
at ListeTable$1.valueChanged(ListeTable.java:358)
at javax.swing.JList.fireSelectionValueChanged(Unknown Source)
at javax.swing.JList$ListSelectionHandler.valueChanged(Unknown Source)
at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown
Source)
at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown
Source)
at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown
Source)
at javax.swing.DefaultListSelectionModel.changeSelection(Unknown
Source)
at javax.swing.DefaultListSelectionModel.changeSelection(Unknown
Source)
at
javax.swing.DefaultListSelectionModel.setSelectionInterval(Unknown Source)
at javax.swing.JList.setSelectionInterval(Unknown Source)
at
javax.swing.plaf.basic.BasicListUI$Handler.adjustFocusAndSelection(Unknown
Source)
at javax.swing.plaf.basic.BasicListUI$Handler.mousePressed(Unknown
Source)
at java.awt.AWTEventMulticaster.mousePressed(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown
Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Exception in thread "AWT-EventQueue-3" java.lang.NullPointerException
at java.util.StringTokenizer.<init>(Unknown Source)
at java.util.StringTokenizer.<init>(Unknown Source)
at ListeTable$1.valueChanged(ListeTable.java:358)
at javax.swing.JList.fireSelectionValueChanged(Unknown Source)
at javax.swing.JList$ListSelectionHandler.valueChanged(Unknown Source)
at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown
Source)
at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown
Source)
at javax.swing.DefaultListSelectionModel.setValueIsAdjusting(Unknown
Source)
at javax.swing.JList.setValueIsAdjusting(Unknown Source)
at javax.swing.plaf.basic.BasicListUI$Handler.mouseReleased(Unknown
Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown
Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Le code la fonction dissidente :
public void makeTableJeu() throws Exception
{
int i =0;
realData = new Vector();
list = null;
try
{
conn1 = new connex();
}
catch(Exception e)
{ System.err.println("n*** Exception caught
in Load()");
throw e;
}
list = new JList(realData);
list.setFont(f);
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
list.setVisibleRowCount(-1);
list.setSeletedIndex(0);
list.addListSelectionListener(new ListSelectionListener()
{
public void valueChanged( ListSelectionEvent ee)
{
String str1 = (String)list.getSelectedValue();
StringTokenizer st = new StringTokenizer(str1);
String str = st.nextToken();
L'appel à la fonction est le suivant, dans un ActionPerfomed :
if (ae.getSource() == rafraichir)
{
try {
makeTableJeu();
list.repaint();
}
catch(Exception e)
{
System.err.println("n*** Exception caught in makeTableJeu
in init()");
}
Je me doute que mon approche est un peu cavalière, ce qui explique
sûrement le pourquoi du comment de mon erreur, mais je dois avouer ne
pas trop voir comment corriger ça...
Oui, il suffit de mettre à jour son modèle (voir doc DefaultListModel par exemple).
Par contre, il faut éviter de se connecter directement à une base de donnée via un applet, qui n'est sensé dialoguer que sur le port 80. Mieux vaut passer par une servlet, qui alimentera par exemple ton applet via un flux XML ou autre.
Par rapport à ton erreur de compilation, elle est très claire : tu essayes de créer un StringTokenizer à partir d'une référence nulle (classe ListeTable, ligne 358).
A+
Symon
David Tran Quang Ty wrote:
Bonjour à tous,
Toujours dans le cadre de mon developpement d'applet avec une JList, j'aimerai savoir si il est possible de la mettre à jour en temps plus ou moins réel... Avec la JList que j'ai actuellement, qui est crée, puis initiée d'après les données d'une base de données MySQL, j'avais pensé qu'en rappelant simplement la fonction qui l'avait créée me permettrait de créer une nouvelle JList avec les élèments fraîchement changé... Seulement, cela n'a pas l'air de fonctionner comme je le souhaiterais -_-
Ce qui se passe actuellement, c'est que lorsque je rappelle la fonction, via un bouton rafraichir subtilement placé, qui a permis de créer cette JList, les informations fournie par la console m'indique que le vecteur a bien récupéré les données mises à jour de la base de données, mais il semblerait que la liste ne veuille pas se réinitialiser... Même avec un repaint, cela ne me donne pas ce que je voudrais.
L'erreur donnée par la console est la suivante :
Exception in thread "AWT-EventQueue-3" java.lang.NullPointerException at java.util.StringTokenizer.<init>(Unknown Source) at java.util.StringTokenizer.<init>(Unknown Source) at ListeTable$1.valueChanged(ListeTable.java:358) at javax.swing.JList.fireSelectionValueChanged(Unknown Source) at javax.swing.JList$ListSelectionHandler.valueChanged(Unknown Source) at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source) at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source) at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source) at javax.swing.DefaultListSelectionModel.changeSelection(Unknown Source) at javax.swing.DefaultListSelectionModel.changeSelection(Unknown Source) at javax.swing.DefaultListSelectionModel.setSelectionInterval(Unknown Source) at javax.swing.JList.setSelectionInterval(Unknown Source) at javax.swing.plaf.basic.BasicListUI$Handler.adjustFocusAndSelection(Unknown Source) at javax.swing.plaf.basic.BasicListUI$Handler.mousePressed(Unknown Source) at java.awt.AWTEventMulticaster.mousePressed(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) Exception in thread "AWT-EventQueue-3" java.lang.NullPointerException at java.util.StringTokenizer.<init>(Unknown Source) at java.util.StringTokenizer.<init>(Unknown Source) at ListeTable$1.valueChanged(ListeTable.java:358) at javax.swing.JList.fireSelectionValueChanged(Unknown Source) at javax.swing.JList$ListSelectionHandler.valueChanged(Unknown Source) at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source) at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source) at javax.swing.DefaultListSelectionModel.setValueIsAdjusting(Unknown Source) at javax.swing.JList.setValueIsAdjusting(Unknown Source) at javax.swing.plaf.basic.BasicListUI$Handler.mouseReleased(Unknown Source) at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)
Le code la fonction dissidente :
public void makeTableJeu() throws Exception { int i =0;
realData = new Vector(); list = null;
try { conn1 = new connex(); } catch(Exception e) { System.err.println("n*** Exception caught in Load()"); throw e; }
list = new JList(realData); list.setFont(f); list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); list.setVisibleRowCount(-1); list.setSeletedIndex(0);
list.addListSelectionListener(new ListSelectionListener() { public void valueChanged( ListSelectionEvent ee) { String str1 = (String)list.getSelectedValue(); StringTokenizer st = new StringTokenizer(str1); String str = st.nextToken();
L'appel à la fonction est le suivant, dans un ActionPerfomed :
if (ae.getSource() == rafraichir) {
try { makeTableJeu(); list.repaint(); } catch(Exception e) { System.err.println("n*** Exception caught in makeTableJeu in init()"); }
Je me doute que mon approche est un peu cavalière, ce qui explique sûrement le pourquoi du comment de mon erreur, mais je dois avouer ne pas trop voir comment corriger ça...
Toute aide est donc la bienvenue ^^
Merci d'avance ^^
David Tran Quang Ty
Merci de vos réponses, cela m'a une fois de plus sorti du pétrin ^^
Par contre, il faut éviter de se connecter directement à une base de donnée via un applet, qui n'est sensé dialoguer que sur le port 80. Mieux vaut passer par une servlet, qui alimentera par exemple ton applet via un flux XML ou autre.
Et avec RMI, c'est possible aussi, dans la mesure ou je cherche juste à récuperer des DefaultListModel ou JLabel ?
Merci encore ^^
Merci de vos réponses, cela m'a une fois de plus sorti du pétrin ^^
Par contre, il faut éviter de se connecter directement à une base de
donnée via un applet, qui n'est sensé dialoguer que sur le port 80.
Mieux vaut passer par une servlet, qui alimentera par exemple ton applet
via un flux XML ou autre.
Et avec RMI, c'est possible aussi, dans la mesure ou je cherche juste à
récuperer des DefaultListModel ou JLabel ?
Merci de vos réponses, cela m'a une fois de plus sorti du pétrin ^^
Par contre, il faut éviter de se connecter directement à une base de donnée via un applet, qui n'est sensé dialoguer que sur le port 80. Mieux vaut passer par une servlet, qui alimentera par exemple ton applet via un flux XML ou autre.
Et avec RMI, c'est possible aussi, dans la mesure ou je cherche juste à récuperer des DefaultListModel ou JLabel ?