Bonjour, j ' ai un petit problème de récupération de contenu d ' une arrayList
Voila , celle ci contient 2 objets: un numéro et une dates que je récupère via une connexion sur un serveur.
J arrive bien a remplir ma liste et a l afficher dans ma classe qui fait la connexion , mais je voudrai la récupérer dans une autre classe:plus précisément un modèle de jlist(pour remplir la jlist en question)

je désire récupérer uniquement la liste sans faire de connexion a nouveau( ce qui logique car ca doit etre une autre classe qui est censé faire cela)


Le principe est le suivant , j ai une jdialog qui demande a l user de rentrer les infos du serveur, une fois appuyer sur le bouton valider , la connexion s enclenche, recupere des infos dans une arrayList, et doit passer cette arrayList a la classe ListPersonnalises(modele de jlist) pour que celle ci puisse se remplir.

Seulement je suis incapable de passer l arrayList , sans refaire de connexion
Comment contourner ce probleme svp car mon code doit etre mal decoupe( je n arrive pas a separer la partie connexion de recuperation)

mon Jdialog

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
public class InfosServeur extends JDialog{
 
 
	    private String adresseImapServer = "129.227.81.96";
	    private String user = "10000000007" , password = "7341784227032039938";
	    private int port = 143;
	    private JTextField adresseImapServerSaisi=new JTextField(adresseImapServer, 20),  portSaisi = new JTextField("" + port, 11), userSaisi= new JTextField(user, 20);;
	    private JPasswordField passwordSaisi=new JPasswordField(password, 10);
	    private String title;
	    private ArrayList<Messages> messages = new ArrayList<Messages>();
	    private ArrayList<String> dates = new ArrayList<String>();
	  private Imap connexionImap=new Imap();
 
 
	   public JPanel creerPanelBas()
	   {
		   JPanel panneauBas=new JPanel();
		          JButton valider,annuler;
		          valider = new JButton("Valider");
		         valider.addActionListener(new ActionListener(){
 
		  	        public void actionPerformed(ActionEvent event)
		  	        {
		  	        	setVisible(false);
		  	        	creerConnexion();
		  	        }
		  	      });
 
		          annuler = new JButton("Annuler");
		          annuler.addActionListener(new ActionListener(){
		  	        public void actionPerformed(ActionEvent event)
		  	        {
		  	          //dispose();
 
		  	          System.exit(0);
		  	        }
		  	      });
		         ;
 
		          panneauBas = new JPanel();
		          panneauBas.setLayout(new FlowLayout(FlowLayout.CENTER));
		          panneauBas.add(valider);
		          panneauBas.add(annuler);
		        return panneauBas;
	   }
 
 
 
  public void creerConnexion()
	   {
 
	        	try {
	        		adresseImapServer = adresseImapServerSaisi.getText();
	  	         	user = userSaisi.getText();
	  	         	password = new String(passwordSaisi.getPassword());
	  	         	port = Integer.parseInt(portSaisi.getText());
 
					connexionImap.initialiserConnexion(user, password, adresseImapServer, port);
					connexionImap.ouvrirBoiteMail("INBOX");
 
 
 
				} catch (MessagingException e) {e.printStackTrace();}
				  catch (IOException e) {e.printStackTrace();}
			 //dispose();*/
	          setVisible(false);
	   }
 
	   public ArrayList<Messages> recupererMessages()
	   {
		  // creerConnexion();
		   boolean etat = false;
		   for ( int i =0; i < connexionImap.nbMessage(); i++ ) {
		          try {
		        	  if(connexionImap.isRead(i)==true) etat=true;
		        	  else if(connexionImap.isNew(i)==false) etat=false;
					messages.add(new Messages(etat,connexionImap.recupererNumero(i).toString(),connexionImap.recupererDate(i).toString()));
 
				} catch (MessagingException e) {e.printStackTrace();}
 
		          System.out.println(messages);
 
		        }
		   try {
			connexionImap.close();
		} catch (MessagingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
 
		return messages;
 
	   }
mon modele de jlist
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class ListesPersonnalisesPanelAppel extends DefaultListModel{
	private  ArrayList<Messages> messages= new ArrayList<Messages>();
	private static  List <Messages> messagesSupprimes= new ArrayList<Messages>();
	public ListesPersonnalisesPanelAppel()
	{
 
		messages=new InfosServeur().recupererMessages();// null pointer si je n effectue pas la connexion ici
	}
	@Override
 
	public Object getElementAt(int index) {
		// TODO Auto-generated method stub
		return messages.get(index);
	}
 
	@Override
	public int getSize() {
		// TODO Auto-generated method stub
		return messages.size();
	}
Merci de votre aide