Bison_Ravi_33
Messages postés55Date d'inscriptionmercredi 16 juin 2004StatutMembreDernière intervention20 septembre 2004
-
28 juil. 2004 à 23:34
Bison_Ravi_33
Messages postés55Date d'inscriptionmercredi 16 juin 2004StatutMembreDernière intervention20 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 ?
cs_GodConan
Messages postés2113Date d'inscriptionsamedi 8 novembre 2003StatutContributeurDernière intervention 6 octobre 201212 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)
Bison_Ravi_33
Messages postés55Date d'inscriptionmercredi 16 juin 2004StatutMembreDernière intervention20 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...
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_GodConan
Messages postés2113Date d'inscriptionsamedi 8 novembre 2003StatutContributeurDernière intervention 6 octobre 201212 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 ...
Bison_Ravi_33
Messages postés55Date d'inscriptionmercredi 16 juin 2004StatutMembreDernière intervention20 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...