private JButton getButOK() {
		if (butOK == null) {
			butOK = new JButton();
			butOK.setText("Cryptanalyser");
			butOK.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					boolean fail=false;
					if(saisie) {
						try {
							m=Fabrique.fabriquerMessage(getTextSaisieMess().getText());
							if(getTextSaisieMess().getText().equals("")) {
								JOptionPane.showMessageDialog(null, "Veuillez saisir un message ou un chemin vers un fichier texte contenant un message clair", "Message vide", JOptionPane.ERROR_MESSAGE);
								fail=true;
							}
						}
						catch(Exception ex) {
							JOptionPane.showMessageDialog(null, "Veuillez saisir un message ou un chemin vers un fichier texte contenant un message clair", "Message vide", JOptionPane.ERROR_MESSAGE);
							fail=true;
						}
					}
					else {
						ILectureMessage lec=new LectureMessage(getTextCheminMess().getText());
						if(lec.probleme()) {
							fail=true;
						}
						else {
							m=lec.getMessage();
						}
					}

					if(saisieCrypte) {
						try {
							mCrypte=Fabrique.fabriquerMessage(getTextSaisieMessCrypte().getText());
							if(getTextSaisieMess().getText().equals("")) {
								JOptionPane.showMessageDialog(null, "Veuillez saisir un message ou un chemin vers un fichier texte contenant un message crypte", "Message vide", JOptionPane.ERROR_MESSAGE);
								fail=true;
							}
						}
						catch(Exception ex) {
							JOptionPane.showMessageDialog(null, "Veuillez saisir un message ou un chemin vers un fichier texte contenant un message crypte", "Message vide", JOptionPane.ERROR_MESSAGE);
							fail=true;
						}
					}
					else {
						ILectureMessage lec=new LectureMessage(getTextCheminMessCrypte().getText());
						if(lec.probleme()) {
							fail=true;
						}
						else {
							mCrypte=lec.getMessage();
						}
					}
					if(!fail) {
						enCours=false;
					}

				}
			});
		}
		return butOK;
	}