Passage de variable

Bison_Ravi_33 Messages postés 55 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 20 septembre 2004 - 28 juil. 2004 à 23:34
Bison_Ravi_33 Messages postés 55 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 20 septembre 2004 - 26 août 2004 à 00:21
salut tout le monde.
J'ai dans l'idée de créer deux Bean, que nous appelerons A et B.
Le Bean A est constitué de trois boutons JButton (avant, stop et init), d'une JLabel et d'un champ de texte JTextField. Dans le champ de texte je rentre un pas de temps (int pas). Le JLabel affiche la variable t, initialisée à zéro.
Lorsque j'appuie sur le boutton init, la valeur de t redevient zéro et le JLabel l'affiiche.
Lorsque j'appuie sur le bouton avant, la valeur de t est incrémentée toutes les demi secondes de la valeur du pas de temps.
exemple avec un pas = 12.
temps réel : 0 s --> t = 0
0,5 s --> t = 12
1,0 s --> t = 24 ... et ainsi de suite.

Pour cela, j'ai utilisé un code tout simple (largement inspiré de Draven et de son chronomètre -- Merci --) j'ai créé ma classe sans problème. Puis j'ai essayé de la transformer en Bean,

import java.lang.*;
import java.awt.*;
import javax.swing.*;
import javax.swing.border.*;
import java.awt.event.*;
import java.lang.Object;
import java.io.Serializable;    // Serialisation  
import java.beans.*;	          

public class H6 extends Object implements Serializable {

// ---- déclaration des variables
    private static int t =0;

// ---- Le timer actualise l'affichage toutes les 0,5 secondes
    private static int delay=500;

// ---- la seule variable utile pour lors de la conenxion à d'autres bean
// ---- est le temps t, c'est donc la seule variable qu'on associe à un GET
// ---- afin qu'elle soit accessible par d'autres classes
    public int get_t() {
return t;
    }

    public static void main(String[] args) {
// ---- déclaration des évènements
        ActionListener tache_timer_avant;

// ------------------------ CREATION DES COMPOSANTS ------------------
// ----------- déclaration des boutons
        	JButton avant = new JButton("avant");
JButton stop = new JButton("STOP");
JButton init = new JButton("Remise à zéro");
// ----------- déclaration des Labels
final JLabel temps = new JLabel("temps");
        	JLabel pasdetemps_Label = new JLabel("pas de temps");
// ----------- déclaration des zones de texte
final JTextField pasdetemps = new JTextField(4);
// ----------- déclaration des zones de mise en page
JPanel Panel1 = new JPanel();
JPanel Panel2 = new JPanel();
JFrame fenetre = new JFrame("Timer");

// ---- Action réalisé par le timer AVANT
        tache_timer_avant= new ActionListener() {
            public void actionPerformed(ActionEvent e) {
int pdt = (int)(Double.parseDouble(pasdetemps.getText()));
                t=t+pdt;
temps.setText("temps : "+t);
                }
            };
// ---- instanciation du timer
final Timer timer_avant= new Timer(delay,tache_timer_avant);

// ---- Ajout des composants aux conteneurs avec formatage
Panel1.add(temps);
Panel2.add(pasdetemps_Label);
Panel2.add(pasdetemps);
Panel2.add(init);
Panel2.add(stop);
Panel2.add(avant);
Panel1.setBorder(new EmptyBorder(10,135,10,10));
fenetre.getContentPane().add(Panel1,"South");
fenetre.getContentPane().add(Panel2,"North");

// ---- Action provoqué par l'utilisateur lors du clic sur le bouton AVANT
        avant.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e_av) {
timer_avant.start();
            }
        });

// ---- Action provoqué par l'utilisateur lors du clic sur le bouton init
        init.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
    t = 0;
    temps.setText("temps : "+t);
    timer_avant.stop();
}
        });

// ---- Action provoqué par l'utilisateur lors du clic sur le bouton STOP
        stop.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
timer_avant.stop();
timer_arriere.stop();
            }
        });

// ---- Afficher l'ihm
        JFrame.setDefaultLookAndFeelDecorated(false);
        fenetre.pack();
        fenetre.setLocation(350,150);   // Déplacer la fenetre à ce nouvel emplacement
        fenetre.setSize(600,150);    // dimension de la fenetre
        fenetre.show();
    }
}


Le second Bean (B) a pour but d'afficher la variable t.
Le bean A n'a pas besoin d'avoir de propriété : on ne doit pas le configurer dans le BDK, le pas de temps doit etre entrer une fois l'association avec d'autres bean et la

sauvegarde sous forme d'Applet effectuée, ceci pour ne pas avoir à recompiler à chaque fois qu'on veut modifier le pas de temps.

Finalemen, je dois donc relier les Bean A et B entre eux.

j'en arrive aux questions:
* est-il possible de ne transférer d'un bean à l'autre qu'une variable et non une méthode ?
* que dois-je écrire dans mon bean B pour qu'il affiche la valeur de la variable t ?
ou, du moins, pour que transférer la valeur de la variable t à un autre bean... quelles doivent etre les méthodes ?

merci pour vos réponses...
;)

27 réponses

cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 12
16 août 2004 à 23:22
GodConan :clown)
ben si tu passe des tableau en fait tu ne fait que passer des reference sur des tableau c peu etre ca le prob...
dc passe tou les param ou trouve une autre soluce... ;o)

sorry...
0
Bison_Ravi_33 Messages postés 55 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 20 septembre 2004
17 août 2004 à 11:44
t'as pas une idée pour une autre solution ?

Parceque passer tous les paramètres à chaque fois... ça devient franchement lourd... %-6
0
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 12
17 août 2004 à 19:20
GodConan :clown)

ben c come ca qu on fait ;o) ... si le passage d une structure ne peut pas etre envisagée ... ;o)
0
Bison_Ravi_33 Messages postés 55 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 20 septembre 2004
17 août 2004 à 20:39
en somme, tu me dis qu'il n'y a plus d'espoir ???

pas très réjouissant tout ça ... :sad)
il doit bien y avoir une solution...
j'ai un bean qui va gérer les interactions entre plusieurs satellites de Télécom... et pour chaque satellite, j'ai 8 paramètres....

:shock) je fais comment moi ??? :shock)
je passe mes journées à passer les paramètres ?

ouah la galère...
je croyais que Java, c'était l'Avenir...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 12
18 août 2004 à 00:42
GodConan :clown)

ben en fait normalement le passage d une structure ca devrai marcher ;o) mais bon du temp ou je faisai du C c etai pas rare de passer 8 param .. ;o)...

Ou si le prob c le passage de ref ... essai de passser l ensemble des donnee en passant par des stream .... ;o) mais la g jkamai fait.. ;o) dc peu pas t aider ...
0
Bison_Ravi_33 Messages postés 55 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 20 septembre 2004
18 août 2004 à 11:46
Je viens d'essayer de passer mes paramètres via des Vector()... mais ça ne renvoie rien...

alors soit je suis un blaireau en programmation (ce qui est tout à fait probable), soit les JavaBeans ne sont pas aussi "au point " qu'on aurait pu le penser...

pour ma part, je penche pour la première :-p

enfin, je vais essayer les Stream... j'ai plus rien à perdre de toute façon...
0
Bison_Ravi_33 Messages postés 55 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 20 septembre 2004
26 août 2004 à 00:21
mais au fait GodConan :clown)

t'es sûr pour le "Stream" ????
0
Rejoignez-nous