Probleme d'ajout dans une hashmap
Nolan
-
Nolan -
Nolan -
Bonjour,
Je dois faire un projet sur une frise chronologique et je dois rajouter des événements sachant qu'ils peut y avoir des événements la même année j'ai fait mon code mais cela ne marche pas au lieu de rajouter l’événement a la suite d'un autre événement de la même année il ne fais rien.J'aurais besoin d'une réponse rapidement s'il vous plait il me le faut pour demain merci.
Voici mon code:
Je dois faire un projet sur une frise chronologique et je dois rajouter des événements sachant qu'ils peut y avoir des événements la même année j'ai fait mon code mais cela ne marche pas au lieu de rajouter l’événement a la suite d'un autre événement de la même année il ne fais rien.J'aurais besoin d'une réponse rapidement s'il vous plait il me le faut pour demain merci.
Voici mon code:
package modele;
import java.io.Serializable;
import java.util.HashMap;
import java.util.TreeSet;
import vue.*;
public class Frise implements Serializable{
private static HashMap<Integer, TreeSet<Evenement>> chHashMap = new HashMap<Integer,TreeSet<Evenement>>();
int dateDebut;
int dateFin;
int periode;
String nom;
public Frise(String N,int dDeb,int dFin,int per){
nom=N;
dateDebut=dDeb;
dateFin=dFin;
periode=per;
;
}
public static void ajout(Date parDate,Evenement parEvt) {
TreeSet<Evenement> arbre;
Integer m = new Integer(parDate.getAnnee());
if (chHashMap.containsKey(m)==false){
System.out.println("pas de clé");
arbre = new TreeSet<Evenement>();
arbre.add(parEvt);
chHashMap.put(m,arbre);
}
else {
System.out.println("il y a une clé");
arbre=chHashMap.get(m);
System.out.println(parEvt);
arbre.add(parEvt);
}
for (Integer a : chHashMap.keySet()){
System.out.println(a+ " : "+chHashMap.get(a));
}
}
public TreeSet<Evenement> getEvts(Date parDate){
return chHashMap.get(parDate);
}
}
A voir également:
- Probleme d'ajout dans une hashmap
- Demande d'ajout snap qui disparait ✓ - Forum Snapchat
- Ajout snap sans rien d'écrit - Forum Snapchat
- Ajout rapide snap - Forum Snapchat
- Demande d'amis SNAPCHAT - Forum Snapchat
- Comment enlever la limite d'ajout sur snapchat - Forum Snapchat
Le problème est ailleurs, probablement dans le reste de ton code.
Voici le code ou l'ajout est fait:
package vue; import java.awt.BorderLayout; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.GridLayout; import java.awt.Insets; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import modele.*; import java.io.File; import java.util.TreeMap; import java.util.TreeSet; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.JTextField; import controleur.Controleur; //faire un bouton pour retirer des evts de la frise ?0 public class FormulaireEvts extends JPanel implements ActionListener { JPanel panelCentre = new JPanel(); final String INTITULE_BOUTON_AJOUT = "Ajout"; final String INTITULE_BOUTON_QUITTER = "Quitter"; private static final long serialVersionUID = 1L; //éléments graphiques final String [] POIDS = {"1", "2", "3", "4", "5"}; JButton boutonAjout = new JButton(INTITULE_BOUTON_AJOUT); JButton boutonQuitter = new JButton (INTITULE_BOUTON_QUITTER); JComboBox <String> champpoidsEvt = new JComboBox<String>(POIDS); JTextField champNomEvt = new JTextField(15); JTextField champDateEvt = new JTextField(15); JTextArea champDescrEvt = new JTextArea(10,10); public FormulaireEvts() { setLayout(new GridBagLayout()); GridBagConstraints contrainte = new GridBagConstraints(); contrainte.insets = new Insets(6,6,6,6); contrainte.anchor = GridBagConstraints.WEST; File repertoire = new File("Frise"); String[] files=repertoire.list(); JLabel titreFormulaire = new JLabel("Formulaire d'ajout d'événements", JLabel.CENTER); JLabel nomFrise =new JLabel("Frise :"+ files[1], JLabel.CENTER); JLabel partieEvenements = new JLabel("Partie événements :", JLabel.LEFT); JLabel nomEvenement = new JLabel("Nom de l'événement :", JLabel.LEFT); JLabel dateDebutEvt = new JLabel("Date de l'événement :", JLabel.LEFT); JLabel ajoutImage = new JLabel("Image de l'événement :", JLabel.LEFT); JLabel descriptionEvt = new JLabel("Description de l'événement :", JLabel.LEFT); JLabel poidsEvt = new JLabel("Importance de l'événement (poids) :", JLabel.LEFT); contrainte.gridx=0; contrainte.gridy++; contrainte.gridwidth = 1; this.add(nomFrise,contrainte); contrainte.gridx=0; contrainte.gridy++; contrainte.gridwidth = 1; this.add(titreFormulaire,contrainte); contrainte.gridx=0; contrainte.gridy++; contrainte.gridwidth = 1; this.add(nomEvenement,contrainte); contrainte.gridx++; contrainte.gridwidth = 4; contrainte.fill=GridBagConstraints.HORIZONTAL; this.add(champNomEvt,contrainte); contrainte.fill=GridBagConstraints.NONE; contrainte.gridx=0; contrainte.gridy++; contrainte.gridwidth = 1; this.add(dateDebutEvt,contrainte); contrainte.gridx++; contrainte.gridwidth = 4; contrainte.fill=GridBagConstraints.HORIZONTAL; this.add(champDateEvt,contrainte); contrainte.fill=GridBagConstraints.NONE; contrainte.gridx=0; contrainte.gridy++; contrainte.gridwidth = 1; this.add(poidsEvt,contrainte); contrainte.gridx++; contrainte.gridwidth = 1; this.add(champpoidsEvt,contrainte); contrainte.gridx=0; contrainte.gridy++; contrainte.anchor=GridBagConstraints.NORTHWEST; this.add(descriptionEvt,contrainte); contrainte.gridwidth=4; contrainte.gridx++; contrainte.fill=GridBagConstraints.BOTH; this.add(new JScrollPane(champDescrEvt),contrainte); boutonAjout.setActionCommand(INTITULE_BOUTON_AJOUT); contrainte.gridx=0; contrainte.gridy++; contrainte.gridwidth = 1; this.add(boutonAjout, contrainte); contrainte.gridx++; this.add(boutonQuitter, contrainte); //this.add(panelCentre); boutonAjout.addActionListener(this); boutonQuitter.addActionListener(this); } public void actionPerformed(ActionEvent parEvt) { Evenement evt; if (parEvt.getSource () == boutonAjout) { evt = new Evenement(champNomEvt.getText(),champDescrEvt.getText(),Integer.parseInt((String)(champpoidsEvt.getSelectedItem()))); Date dateEvt = new Date(Integer.parseInt(champDateEvt.getText())); Frise.ajout(dateEvt,evt); File repertoire = new File("Frise"); String[] files=repertoire.list(); champDescrEvt.setText(""); champNomEvt.setText(""); champDateEvt.setText(""); } else if (parEvt.getSource () == boutonQuitter) { champDescrEvt.setText(""); champNomEvt.setText(""); champDateEvt.setText(""); champpoidsEvt.setSelectedIndex(0); } } }class Date { int a; public Date(int a) { this.a = a; } public Integer getAnnee() { return a; } } class Evenement implements Comparable<Evenement> { private String s; public Evenement(String s, String t, int i) { this.s = s; } public int compareTo(Evenement e) { return s.compareTo(e.s); } public String toString() { return s; } } public static void main(String[] args) { Frise.ajout(new Date(2017), new Evenement("A17","",0)); Frise.ajout(new Date(2017), new Evenement("B17","",0)); Frise.ajout(new Date(2018), new Evenement("A18","",0)); Frise.ajout(new Date(2018), new Evenement("B18","",0)); System.out.println(Frise.chHashMap); // {2017=[A17, B17], 2018=[A18, B18]} }