Bonjour à tous c'est encore moi, j'ai un problème j'ai beau chercher je ne comprends pas ,j'ai une liste de tableau à deux dimension dans mon ejb stateful problème je veux l'afficher dans une autre fonction que celle ou j'établit la session mais quand je fais sa il me dit que ma liste est vide ,par contre si je vérifie à l'intérieur de la fonction ou j' envoi les donnée en récupèrent mon buffer sa fonctionne comment puis je faire ,j'aimerais aussi afficher plusieurs jtable un pour chaque tableau de ma liste pourriez vous m'aidez je suis vraiment bloqué voici mon code:
Voici la fonction qui envoi les données à l'ejb stateful cela fonctionne j'ai testé et quand j'ajoute au buffer aussi.
Code JAVA : 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 public void conserver(int Somme, int Date, int annee, int duree, int taux) { // TODO Auto-generated method stub // Appel du stateless bean AmortissementAvecEtatRemote Amortissement; try { Amortissement = lookupRemoteStatelessAvecEtatAmortissement(); Amortissement .calculerAmortissement(Somme, Date, annee, duree, taux); Object[][] donnee = Amortissement.calculerAmortissement(Somme, Date, annee, duree, taux); String[] entetes = { "mois", "annee", "mensualite", "amortissement", "interet" }; JTable table = new JTable(donnee, entetes); getContentPane().add(new JScrollPane(table), BorderLayout.SOUTH); } catch (NamingException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
Voici l'ejb stateful ou j'ai ma liste de tableau j'ai testé aussi ce n'ai pas vide :
Code JAVA : 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 package hw; import java.util.ArrayList; import javax.ejb.LocalBean; import javax.ejb.Stateful; /** * Session Bean implementation class Amortissement */ @Stateful public class AmortissementAvecEtat implements AmortissementAvecEtatRemote { private ArrayList<Object[][]> buffer = new ArrayList<Object[][]>(); /** * Default constructor. */ public AmortissementAvecEtat() { // TODO Auto-generated constructor stub } public Object [][] calculerAmortissement(int somEmprunt, int moisDebut, int anneeDebut, int dureePret, int tauxAnnuel) { // CALCUL DE L'AMORTISSEMENT double tauxMensuel = ((double)tauxAnnuel / 12) / 100; int dureeMensuelPret = dureePret * 12; int capitalRestantDu = somEmprunt; int moisPeriode = moisDebut; int anneePeriode = anneeDebut; int amortissementPeriode = 0; int interetsPeriode = 0; int mensualiteConstante = (int) Math.round((((double)(somEmprunt * tauxMensuel)) / ((double)(1 - Math.pow(1 + tauxMensuel, -dureeMensuelPret))))); /* tableauAmortissement [...][0] : mois de la période * tableauAmortissement [...][1] : année de la période * tableauAmortissement [...][2] : mensualité * tableauAmortissement [...][3] : amortissement * tableauAmortissement [...][4] : intérêts */ Object [][] tableauAmortissement = new Object [dureeMensuelPret][5]; for (int i = 0; i < dureeMensuelPret; i++) { interetsPeriode = (int) (capitalRestantDu * tauxMensuel); amortissementPeriode = mensualiteConstante - interetsPeriode; tableauAmortissement [i][0] = moisPeriode; tableauAmortissement [i][1] = anneePeriode; tableauAmortissement [i][2] = mensualiteConstante; tableauAmortissement [i][3] = amortissementPeriode; tableauAmortissement [i][4] = interetsPeriode; capitalRestantDu = capitalRestantDu - amortissementPeriode; moisPeriode++; if (moisPeriode == 13) { moisPeriode = 1; anneePeriode++; } } this.buffer.add(tableauAmortissement); return tableauAmortissement; } public ArrayList<Object[][]> getBuffer() { return buffer; } public void setBuffer(ArrayList<Object[][]> buffer) { this.buffer = buffer; } }
voici mon autre fonction lors du clique d'un autre bouton,tous fonctionne m'ais quand je vérifie dans celle-ci ma liste est toujours vide ma supposition est comme j'établi une nouvel connexion je perd les données mais alors comment faire pour avec un bouton récupérer les données sans perdre la connexion,également pour l'affichage des jtable sa ne fonctionne pas est-il possible dans crée à l'aide de boucle? :
Code JAVA : 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 public void afficher_amortissement() { // TODO Auto-generated method stub // Appel du stateless bean AmortissementAvecEtatRemote Amortissement; try { Amortissement = lookupRemoteStatelessAvecEtatAmortissement(); ArrayList<Object[][]> amortissement = Amortissement.getBuffer(); String[] entetes = { "mois", "annee", "mensualite", "amortissement", "interet" }; for (Object[][] tableau : amortissement) { JTable table = new JTable(tableau, entetes); // table.setBounds(116, 240, 300,300); getContentPane().add(new JScrollPane(table), BorderLayout.SOUTH); } } catch (NamingException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
Je vous remercie tous de prendre de votre temps n'hésiter pas pour des questions.
Partager