Problème de conception [JAVA]

Fermé
aveuglemspas_sourd Messages postés 286 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 12 octobre 2009 - 24 juin 2009 à 10:41
 Utilisateur anonyme - 24 juin 2009 à 18:18
Bonjour,


Voila je développe une application et j'ai dans une même frame 3 JList : client, exercice, questionnaire.

La première Jlist est chargé automatiquement, la second est chargé lorsque je clique sur un client
et la troisieme est chargé lorsque je clique sur un exercice.

Jusque là pas de problème, sauf que si je clique sur un client, puis sur un exercice puis sur un questionnaire, et que je décide de changer de client, il reste une selection, du coup j'ai ajouter à mes listener des clearselection()
Sauf que ça me gènere des erreur dans la console mais ne gène en rien le déroulement de l'application.

J'en vient donc à ma question : est-il génant d'ajouter des try catch, ce qui fait que je n'ai plus d'erreur lol et mon programme se déroule bien ou alors il existe forcément une solution à mon problème que je n'ai pas encore trouvé?
A voir également:

3 réponses

Utilisateur anonyme
24 juin 2009 à 11:04
Salut,

Un bout de code ainsi que la liste d'erreur(s) seraient vraiment utiles !!!

Cordialement,

Dan
0
aveuglemspas_sourd Messages postés 286 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 12 octobre 2009 20
24 juin 2009 à 11:09
ah dsl je pensais pas que y'aurai quelqun qui voudrait m'iaider à directement résoudre le problème^^
Voici les erreurs :
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: -1
at java.util.ArrayList.get(Unknown Source)
at data.ExercicesModel.getElementAt(ExercicesModel.java:43)
at view.ClientsView$2.valueChanged(ClientsView.java:81)
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.removeSelectionIntervalImpl(Unknown Source)
at javax.swing.DefaultListSelectionModel.clearSelection(Unknown Source)
at javax.swing.JList.clearSelection(Unknown Source)
at view.ClientsView$1.valueChanged(ClientsView.java:68)
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.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(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)


et ( la methode build appellé dans la constructeur de ma classe) :

final JPanel centerPanel = new JPanel(new GridLayout(1, 1));
final JList clientsList = new JList(clientsModel);
final JList exercicesList = new JList(exercicesModel);
final JButton bouton = new JButton();
final JList questionnaireList = new JList(questionnairesmodel);
final ArrayList<Questionnaire> questVide = new ArrayList<Questionnaire>();
clientsList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

clientsList.setBorder(BorderFactory.createTitledBorder("Clients"));
exercicesList.setBorder(BorderFactory.createTitledBorder("Exercices"));
questionnaireList.setBorder(BorderFactory.createTitledBorder("Questionnaires"));
clientsList.addListSelectionListener(new ListSelectionListener() {

@Override
public void valueChanged(ListSelectionEvent e) {
if (e.getValueIsAdjusting())
return;

exercicesModel.setExercices(clientsModel.getElementAt(
clientsList.getSelectedIndex()).getExercices());
questionnaireList.setSelectedIndices(new int[] {});
questionnaireList.validate();
questionnairesmodel.setQuestionnaire(questVide);
exercicesList.clearSelection();

}

});

exercicesList.addListSelectionListener(new ListSelectionListener() {

@Override
public void valueChanged(ListSelectionEvent e) {
if (e.getValueIsAdjusting())
return;

questionnairesmodel.setQuestionnaire(exercicesModel.getElementAt(exercicesList.getSelectedIndex()).getQuestionnaire());



questionnaireList.setSelectedIndices(new int[] {});
questionnaireList.validate();

*/
}

});

questionnaireList.addListSelectionListener(new ListSelectionListener() {

@Override
public void valueChanged(ListSelectionEvent e) {
if (e.getValueIsAdjusting())
return;
System.out.println(questionnaireList.getModel().getElementAt(questionnaireList.getSelectedIndex()));
questionnaireList.repaint();

}

});




centerPanel.add(clientsList);
centerPanel.add(exercicesList);
centerPanel.add(questionnaireList);

frame.add(centerPanel, BorderLayout.CENTER);

frame.setVisible(true);
0
Utilisateur anonyme
24 juin 2009 à 18:18
Salut,

Il est toujours bon de gerer les exceptions.

Dans le cas qui nous interresse le problème est ici:
at data.ExercicesModel.getElementAt(ExercicesModel.java:43) ligne 43 on veut lire en -1.

Cordialement,

Dan
0