Problème de conception [JAVA]
aveuglemspas_sourd
Messages postés
312
Statut
Membre
-
danimo -
danimo -
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é?
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é?
Configuration: Windows Vista Internet Explorer 7.0
3 réponses
-
Salut,
Un bout de code ainsi que la liste d'erreur(s) seraient vraiment utiles !!!
Cordialement,
Dan -
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); -
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