slt à tous,je dispose de plusieurs formulaire :frame et une seule classe pour contrôler leurs actions. une exception de type
java.lang.NoClassDefFoundError mes levé sur le flux et j'aimerais savoir comment je pourrais l'attraper.
code:
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
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;
		}
		/....
     }
cette exception est levé lorsque j'instancie A et B dans C
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
                        new A();
		        new B();
une fois de plus excuse moi si vous trouver ce bout de code trop long j'ai fait l'effort de le réduire le mieux que je pouvais.
alors toute aide,idée ou conseil serais la bien venus.
a++