bonjour, svp comment faire pour eliminer cette erreur
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
 
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at Lexicale.<init>(Lexicale.java:121)
	at Fenetre$9.actionPerformed(Fenetre.java:254)
	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
	at java.awt.Component.processMouseEvent(Unknown Source)
	at javax.swing.JComponent.processMouseEvent(Unknown Source)
	at java.awt.Component.processEvent(Unknown Source)
	at java.awt.Container.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)
voici mes 2 classes:
1-
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
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
 
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FileDialog;
import java.awt.Font;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.Reader;
import java.util.Vector;
 
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
 
 
 
 
 
public class Fenetre extends JFrame {
	/*les attributs*/
      ////////////////////////////////////////////////////////////////////
      /*les boutons*/
	private Bouton bouton1 = new Bouton("   Analyse Lexicale");
	private Bouton bouton2 = new Bouton("Analyse Syntaxique");
	private Bouton bouton3 = new Bouton("Table des Symboles");
////////////////////////////////////////////////////////////////////
	private Dimension dim = new Dimension(147,33);
	Font police = new Font("Calibri", Font.BOLD,13);
	Font police2 = new Font("gerorgia", Font.BOLD,15);
	Font police1 = new Font("times new roman", Font.PLAIN,13);
////////////////////////////////////////////////////////////////////	
    //Instanciation d'un objet JPanel
	//private JPanel pan = new JPanel();
////////////////////////////////////////////////////////////////////	
////////////////////////////////////////////////////////////////////
/*zone de texte*/
    public JTextArea  j=new JTextArea();
 
 ////////////////////////////////////////////////////////////////////   
    Vector dataList = new Vector();
    /*liste box*/    
    JList listbox=new JList(dataList);
////////////////////////////////////////////////////////////////////
    private JTextArea  j1=new JTextArea();
////////////////////////////////////////////////////////////////////
      /*bar de menu*/
	private JMenuBar menuBar = new JMenuBar();
////////////////////////////////////////////////////////////////////
/*menu et sous menu*/
	private JMenu test1 = new JMenu("Fichier");
	private JMenu test2 = new JMenu("Edition");
	private JMenu test5 = new JMenu ("Debug");
	private JMenu test3 = new JMenu("Affichage");
	private JMenu test4 = new JMenu("?");
 
	private JMenuItem item1 = new JMenuItem("Ouvrir");
	private JMenuItem item2 = new JMenuItem("Nouveau");
	private JMenuItem item4 = new JMenuItem("Fermer");
 
	private JMenuItem item5 = new JMenuItem("Couper                     Ctrl+X");
	private JMenuItem item6 = new JMenuItem("Copier                      Ctrl+C");
	private JMenuItem item7 = new JMenuItem("Coller                       Ctrl+S");
	private JMenuItem item8 = new JMenuItem("Selectionner tout  Ctrl+A");
 
	private JMenuItem item9 = new JMenuItem("Compilation complète");
	private JMenu item10 = new JMenu("Compilation détailler");
	private JMenuItem item13 = new JMenuItem("Analyse lexicale");
	private JMenuItem item14 = new JMenuItem("Analyse syntaxique");
 
	private JMenuItem item11 = new JMenuItem("Table des symboles ");
	private JMenuItem item12 = new JMenuItem("A propos de... ");
 
	//FileDialog d1 = new FileDialog(this, "Ouvrir", FileDialog.LOAD);
////////////////////////////////////////////////////////////////////
	/*gouper les sous des sous menu*/
	private ButtonGroup bg = new ButtonGroup();
////////////////////////////////////////////////////////////////////
 
	JLabel label2 = new JLabel("Journal des erreurs:");
////////////////////////////////////////////////////////////////////
	/*notre accesseur*/
	public Fenetre(String titre){
 
 
 
		//Définit un titre pour votre fenêtre
        this.setTitle(titre);
        //Définit une taille pour celle-ci ; ici, 500 px de large et 500 px de haut
        this.setSize(500,500);
        //Nous allons maintenant dire à notre objet de se positionner au centre
        this.setLocationRelativeTo(null);
        //nous allons maintenant spécifier où doit se situer votre fenêtre sur notre écran
        //this.setLocation(0,10); 
        //Ferme-toi lorsqu'on clique sur "Fermer" !
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         //Faire que votre fenêtre soit toujours au premier plan
        this.setAlwaysOnTop(false);
        //Retirer les contours et les boutons de contrôles
        this.setUndecorated(false);
        //desactivé le bouton agrandir la fenetre
        this.setResizable(false);
 
 
 
        //Définition de sa couleur de fond
        getContentPane().setBackground(Color.GRAY);
         //this.setLayout(new BorderLayout());
 
 
 
 
 
      //On initialise nos menus
		//--------------------------
        this.test1.setFont(police);
        this.item1.setFont(police);
        item1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonActionPerformed(evt);
 
 
 
            }
        });
 
		this.test1.add(item1);
 
 
 
		this.item2.setFont(police);
		item2.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {
				j.setText("");
				}				
			});
 
		////////////////////////////////////////////////
		/*menu fermer*/
		item4.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent arg0) {
				System.exit(0);
			}				
		});
		///////////////////////////////////////////////
 
		this.test1.add(item2);
		//Ajout d'un séparateur
		this.test1.addSeparator();
 
		this.item4.setFont(police);
		this.test1.add(item4);
 
		this.test2.setFont(police);
		this.item5.setFont(police);
		item5.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {
				j.cut();
 
				}				
			});
		this.test2.add(item5);
		this.item6.setFont(police);
		item6.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {
				j.copy();
				}				
			});
		this.test2.add(item6);
		this.item7.setFont(police);
		item7.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {
				j.paste();
				}				
			});
		this.test2.add(item7);
		this.item8.setFont(police);
		item8.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {
				j.selectAll();
				}				
			});
		this.test2.add(item8);
 
		this.test5.setFont(police);
		this.item9.setFont(police);
		this.test5.add(item9);
		this.item10.setFont(police);
		this.test5.add(item10);
 
		this.test3.setFont(police);
		this.item11.setFont(police);
		this.test3.add(item11);
 
		this.test4.setFont(police);
		this.item12.setFont(police);
		item12.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {
			Fenetre2 f2=new Fenetre2();
			}				
		});
 
		this.test4.add(item12);
 
		this.item13.setFont(police);
		bg.add(item13);
		this.item14.setFont(police);
		bg.add(item14);
		item10.add(item13);
		item10.add(item14);
 
 
                //L'ordre d'ajout va déterminer l'ordre d'apparition dans le menu de gauche à droite
                //Le premier ajouté sera tout à gauche de la barre de menu et inversement pour le dernier
			this.menuBar.add(test1);
			this.menuBar.add(test2);
			this.menuBar.add(test5);
			this.menuBar.add(test3);
			this.menuBar.add(test4);
			//-------------------------
 
			this.setJMenuBar(menuBar);
 
 
 
	        listbox.setFont(police1);
	        listbox.setPreferredSize(new Dimension(464,110));
	        listbox.setForeground(Color.BLACK);
	        getContentPane().add(listbox);
	        listbox.setBounds(11,330,470,107);
 
        //Ajout du bouton à notre contentPane
        bouton1.setPreferredSize(dim);
        bouton1.setFont(police);
        bouton1.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {
               // Lexicale Analyse=new Lexicale(j,dataList,listbox);
            	  new Lexicale(j);
 
            }
        });
        getContentPane().add(bouton1);
        bouton1.setBounds(25,10, 145,35);
 
        bouton2.setPreferredSize(dim);
        bouton2.setFont(police);
        getContentPane().add(bouton2);
        bouton2.setBounds(175,10, 145, 35);
 
        bouton3.setPreferredSize(dim);
        bouton3.setFont(police);
        bouton3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                Table table_symboles=new Table();
 
 
            }
        });
        getContentPane().add(bouton3);
        bouton3.setBounds(325,10, 145, 35);
 
 
 
 
 
        j.setFont(police2);
        j.setPreferredSize(new Dimension(1000,1000));
        j.setForeground(Color.black);
        j.setEditable(true);
 
 
        /* JScrollPane */
        JScrollPane jScrollPane = new JScrollPane();
        jScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
        jScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
        jScrollPane.setBounds(11,60,470,242);
        jScrollPane.setViewportView(j);
        getContentPane().add(jScrollPane);
 
 
        label2.setFont(police);
        getContentPane().add(label2);
        label2.setBounds(197,300,500,30);
        getContentPane().setLayout(null);
 
 
 
        //On prévient notre JFrame que ce sera notre JPanel qui sera son contentPane
        this.setContentPane(getContentPane());
 
        this.setVisible(true);
 
	}
	private void jButtonActionPerformed (java.awt.event.ActionEvent evt) {
		FileDialog d1 = new FileDialog(this, "File Dialog", FileDialog.LOAD);
        d1.setDirectory("/tmp");
d1.setVisible(true);
          String txt = d1.getFile();
 
         if(txt!=null)      
         { try{ j.setText("");
 
 
          BufferedReader entree =new BufferedReader(new FileReader(d1.getFile()));
 
           String lg = entree.readLine();
           while (lg!=null){
               j.append(lg+"\n");
                 lg = entree.readLine();
           }
         }
 
              catch( Exception e) { System.out.println(e.toString());}}
 
    }
 
}
2-
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
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
 
import java.awt.Color;
import java.util.Vector;
 
import javax.swing.JList;
import javax.swing.JProgressBar;
import javax.swing.JTextArea;
 
 
public class Lexicale {/*1*/
 
 
 
	public Lexicale(JTextArea jTextArea){
 
 
	/*listbox.setForeground(Color.BLACK);
	dataList.add("salut");
	*/
	/*Table des transitions*/
	int table_transitions[][]=new int[16][20];
	/*initialisation de la table des transitions*/
	for(int i = 0; i < 16; i++) for(int j = 0; j < 20; j++) table_transitions[i][j]=-1;
 
	/*S,0*/
	table_transitions[0][0]=1;	
	table_transitions[0][2]=4;
	table_transitions[0][3]=3;
	table_transitions[0][4]=3;
	table_transitions[0][5]=6;
	table_transitions[0][6]=7;
	table_transitions[0][8]=15;
	table_transitions[0][9]=15;
	table_transitions[0][10]=15;
	table_transitions[0][11]=15;
	table_transitions[0][12]=15;
	table_transitions[0][13]=15;
	table_transitions[0][14]=9;
	table_transitions[0][15]=15;
	table_transitions[0][16]=11;
	table_transitions[0][17]=13;
	/*A,1*/
	table_transitions[1][1]=1;
	table_transitions[1][2]=1;
	table_transitions[1][18]=2;
	/*B,2*/
	table_transitions[2][1]=1;
	table_transitions[2][2]=1;
	/*C,3*/
	table_transitions[3][2]=4;
	table_transitions[3][5]=6;
	/*D,4*/
	table_transitions[4][2]=4;
	table_transitions[4][5]=5;
	/*E,5*/
	table_transitions[5][2]=5;
	/*F,6*/
	table_transitions[6][2]=5;
	/*G,7*/
	table_transitions[7][0]=7;
	table_transitions[7][1]=7;
	table_transitions[7][2]=7;
	table_transitions[7][3]=7;
	table_transitions[7][4]=7;
	table_transitions[7][5]=7;
	table_transitions[7][6]=7;
	table_transitions[7][7]=8;
	table_transitions[7][8]=7;
	table_transitions[7][9]=7;
	table_transitions[7][10]=7;
	table_transitions[7][11]=7;
	table_transitions[7][12]=7;
	table_transitions[7][13]=7;
	table_transitions[7][14]=7;
	table_transitions[7][15]=7;
	table_transitions[7][16]=7;  
	table_transitions[7][17]=7;
	table_transitions[7][18]=7;
	table_transitions[7][19]=7;
	/*I,9*/
	table_transitions[9][15]=10;
	/*K,11*/
	table_transitions[11][15]=12;
	table_transitions[11][17]=12;
	/*M,13*/
	table_transitions[13][15]=14;
/*****************************************************************************************/
	/*la table des symboles*/
/*****************************************************************************************/
	String table_symbole[][]=new String[1000][3];
 
/*****************************************************************************************/	
/*Analyse lexicale*/
/*****************************************************************************************/
 
	int nbreligne= jTextArea.getLineCount();/*nombre de lignes*/
 
		String chaine="  Salut ";
		int taille=chaine.length();
		char chaine1[]=chaine.toCharArray();
/*****************************************************************************************/
		/*Algorithme de reconnaissance des entités lexicale*/
	//	int code_idf=100;
	//	String code_idf_cast=new String();
		String entite=new String();
		char entite1[] =null;
		int longueur=0;
		int EC=0;
		int indice=0;
		String TC=new String();
        int m=0;
///**********************************************************************************////
		/*1ere boucle*/
		while(indice<taille){/*deb*/
		 /*etat initial*/  
		 EC=0;
		 /*saut des caractères blanc*/ 
		 while(indice<taille && chaine1[indice]==' ')
		      indice++;
 
 
		 entite1[longueur]=chaine1[indice];
		 longueur++;
 
		 while(  ((EC!=-1)&&(indice<taille))   &&  ((EC!=-1)&&(chaine1[indice]!=' '))   &&    ((EC!=-1)&&(chaine1[indice]!='\n'))  ){/*ref*/
			 EC=table_transitions[EC][ref(chaine1[indice])];
			 indice++;
			 entite1[longueur]=chaine1[indice];
			 longueur++;
		 /*ref*/} 
 
		/*deb*/}
 
	for(m=0;m<=longueur;m++) System.out.println(entite1[m]);  
	}
/*******************************************************************************************/
/*identification de notre caractète*/
public int ref(char tc){
	int reference;
	/*A -> Z*/
	if ((tc=='A')||(tc=='B')||(tc=='C')||(tc=='D')||(tc=='E')||(tc=='F')||(tc=='G')||(tc=='H')||(tc=='I')||(tc=='J')||(tc=='K')||
	(tc=='L')||(tc=='M')||(tc=='N')||(tc=='O')||(tc=='P')||(tc=='Q')||(tc=='R')||(tc=='S')||(tc=='T')||(tc=='U')||(tc=='V')||
	(tc=='W')||(tc=='X')||(tc=='Y')||(tc=='Z')) reference=0;
	/*a->z*/
	else
	if ((tc=='a')||(tc=='b')||(tc=='c')||(tc=='d')||(tc=='e')||(tc=='f')||(tc=='g')||(tc=='h')||(tc=='i')||(tc=='j')||(tc=='k')||
		(tc=='l')||(tc=='m')||(tc=='n')||(tc=='o')||(tc=='p')||(tc=='q')||(tc=='r')||(tc=='s')||(tc=='t')||(tc=='u')||(tc=='v')||
		(tc=='w')||(tc=='x')||(tc=='y')||(tc=='z')) reference=1;
	else
	/*0->9*/
	if((tc=='0')||(tc=='1')||(tc=='2')||(tc=='3')||(tc=='4')||(tc=='5')||(tc=='6')||(tc=='7')||(tc=='8')||(tc=='9')) reference=2;
	else
	/*+*/
	if(tc=='+') reference=3;
	else
	/*-*/
	if(tc=='-') reference=4;
	else
	/*.*/
	if(tc=='.') reference=5;
	else
	/*{*/
	if(tc=='{') reference=6;
	else
	/*}*/
	if(tc=='}') reference=7;
	else
	/*,*/
	if(tc==',') reference=8;
	else
	/*;*/
	if(tc==';') reference=9;
	else
	/*/*/
	if(tc=='/') reference=10;
	else
	/***/
	if(tc=='*') reference=11;
	else
	/*(*/
	if(tc=='(') reference=12;
	else
	/*)*/
	if(tc==')') reference=13;
	else
	/*:*/
	if(tc==':') reference=14;
	else
	/*=*/
	if(tc=='=') reference=15;
	else
	/*<*/
	if(tc=='<') reference=16;
	else
	/*>*/
	if(tc=='>') reference=17;
	else
	/*_*/
	if(tc=='_') reference=18;
 
	/*+*/
	else reference=19;
 
	return reference;
}
 
 
 
 
 
 
}/*1*/