Problème de conception [JAVA]
aveuglemspas_sourd
Messages postés
312
Statut
Membre
-
Utilisateur anonyme -
Utilisateur anonyme -
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é?
A voir également:
- Problème de conception [JAVA]
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Waptrick java voiture - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Eclipse java - Télécharger - Langages
3 réponses
Salut,
Un bout de code ainsi que la liste d'erreur(s) seraient vraiment utiles !!!
Cordialement,
Dan
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);
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);