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 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166
| //frame1
public class A extends javax.swing.JFrame {
public A () {
initComponents();
forme();
}
public void forme(){
Controle controle= new Controle().getInstance();
lire.addActionListener(controle);
ecrire.addActionListener(controle);
controle.enregistrerComposant(lire);
controle.enregistrerComposant(ecrire);
controle.enregistrerComposant(cup);
}
// Variables declaration - do not modify
//composant graphique et initialise dans initComponents()
public javax.swing.JPanel cup;
public javax.swing.JButton ecrire;
public javax.swing.JButton lire;
//....
}
//frame 2
public class B extends javax.swing.JFrame {
public static JCheckBox check=null;
public B () {
initComponents();
forme();
}
public void forme(){
check=new JCheckBox();
check.setName("check");
Controle controle= new Controle().getInstance();
//lien de redirection vers le controleur
add.addActionListener(controle);
update.addActionListener(controle);
delete.addActionListener(controle);
check.addActionListener(controle);
controle.enregistrerComposant(add);
controle.enregistrerComposant(update);
controle.enregistrerComposant(delete);
controle.enregistrerComposant(tabcontact);
controle.enregistrerComposant(contactpanel);
}
// Variables declaration - do not modify
public javax.swing.JButton add;
public javax.swing.JPanel contactpanel;
public javax.swing.JButton delete;
public javax.swing.JTable tabcontact;
public javax.swing.JButton update;
//...
}
//frame 3
public class C extends javax.swing.JFrame {
public C() {
initComponents();
forme();
}
public void forme () {
Controle controle =new Controle().getInstance();
//chargement
Reception.addActionListener(controle);
contact.addActionListener(lcontrole);
message.addActionListener(controle);
deconnexion.addActionListener(controle);
controle.enregistrerComposant(contact);
controle.enregistrerComposant(Reception);
lcontrole.enregistrerComposant(message);
controle.enregistrerComposant(deconnexion);
controle.enregistrerComposant(contenu_prin);
//je crée ici des instances de A et B afin de leur enregistre également
//dans ma liste des composants et propager le contrôle de leur actions
new A();
new B();
}
// Variables declaration - do not modify
public javax.swing.JButton Reception;
public javax.swing.JButton contact;
public javax.swing.JTabbedPane contenu_prin;
public javax.swing.JButton deconnexion;
public javax.swing.JButton message;
// End of variables declaration
//....
}
// class controle
public class Controle implements ActionListener {
private ArrayList<Component> composantsEcoutes=null;
private static Controle instance=null;
private JTabbedPane cont1;
private JPanel cont2,cont3;
public Controle(){
Logger.getAnonymousLogger().info("Acquisition d'un listener");
check=new JCheckBox();
}
public void actionPerformed(ActionEvent e) {
//ici je recuperer le JTabbedPane de C car je doit y ajouter des composants
// en provenance de A et B
for(int j=1;j<composantsEcoutes.size();j++) {
if(composantsEcoutes.get(j).getName().equals("contenu_prin")){
cont1=(JTabbedPane)composantsEcoutes.get(j);
Logger.getAnonymousLogger().info("recuperation de "+cont1.getName());
}
}
Component evtSrc=(Component)e.getSource();
if(composantsEcoutes.contains(evtSrc)){
Logger.getAnonymousLogger().info("Évènement lancé"+e.getActionCommand()+" par: " +evtSrc.getName());
if(evtSrc.getName().equals("Reception")){
//action à realiser si l'on clique sur Reception depuis le frame C
for(int j=1;j<composantsEcoutes.size();j++) {
if(composantsEcoutes.get(j).getName().equals("cup")){
cont2=(JPanel)composantsEcoutes.get(j);
Logger.getAnonymousLogger().info("recuperation de"+cont2.getName());
}
}
cont1.add("Boite de reception",cont2);
Logger.getAnonymousLogger().info("la page reception" +evtSrc.getName()+"est charge");
}
}
if(evtSrc.getName().equals("contact")){
// for(int j=1;j<composantsEcoutes.size();j++) {
if(composantsEcoutes.get(j).getName().equals("tabcontact")){
cont3=(JPanel)composantsEcoutes.get(j);
Logger.getAnonymousLogger().info("recuperation de"+cont3.getName());
}
}
cont1.add("contacts",cont3);
Logger.getAnonymousLogger().info("la page mes contacts" +evtSrc.getName()+"est charge");
}
if(evtSrc.getName().equals("message")){
//idem
}
//.....
}
@SuppressWarnings("LoggerStringConcat")
public void enregistrerComposant(Component c) {
if(composantsEcoutes==null)composantsEcoutes=new ArrayList<Component>();
composantsEcoutes.add(c);
String nomDuComposant=c.getName();
System.out.println(nomDuComposant +" "+composantsEcoutes.size());
Logger.getAnonymousLogger().info("composant ajouté à la liste d'écoute:"+nomDuComposant);
}
public final synchronized static Controle getInstance(){
if(instance==null) instance=new Controle();
return instance;
}
/....
} |
Partager