Ecrire dans un fichier txt les entrées du cla

Résolu/Fermé
Manou1980 Messages postés 11 Date d'inscription jeudi 30 juin 2011 Statut Membre Dernière intervention 31 octobre 2011 - 6 juil. 2011 à 16:58
Manou1980 Messages postés 11 Date d'inscription jeudi 30 juin 2011 Statut Membre Dernière intervention 31 octobre 2011 - 6 juil. 2011 à 17:28
Bonjour,

Le mot de passe récupéré par un champ texte qui se trouve dans une interface graphique est stocké caractère par caractère dans un fichier texte avec le [B]Relative TimeStamp[/B] : 2011-07-06 15:24:16.876

[U]Example Demandé:[/U] Mot de passe tapé par l'utilisateur : abc

Fichier Correspondant contient :

2011-07-06 15:24:16.876 a
2011-07-06 15:24:16.878 b
2011-07-06 15:24:16.879 c

Mon souci c'est que le fichier affiche que le dernier caractère saisi dans le champ password.

[U]Example Réel:[/U] Mot de passe tapé par l'utilisateur : abc

Fichier Correspondant contient :

2011-07-06 15:24:16.879 c


Voici le code:


import java.io.*;
import java.sql.Timestamp;
import java.util.Date;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
 
 
public class Login extends JFrame
{
	// Variables declaration
	private JLabel jLabel1;
	private JLabel jLabel2;
	private JTextField jTextField1;
	private JPasswordField jPasswordField1;
	private JButton jButton1;
	private JPanel contentPane;
	// End of variables declaration
 
 
	public Login()
	{
		super();
		create();
	this.setVisible(true);
	}
 
 
	private void create()
	{
		jLabel1 = new JLabel();
		jLabel2 = new JLabel();
		jTextField1 = new JTextField();
		jPasswordField1 = new JPasswordField();
		jButton1 = new JButton();
		contentPane = (JPanel)this.getContentPane();
 
		//
		// jLabel1
		//
		jLabel1.setHorizontalAlignment(SwingConstants.LEFT);
		jLabel1.setForeground(new Color(0, 0, 255));
		jLabel1.setText("Username:");
		
		//
		// jLabel2
		//
		jLabel2.setHorizontalAlignment(SwingConstants.LEFT);
		jLabel2.setForeground(new Color(0, 0, 255));
		jLabel2.setText("Password:");
		
		//
		// jTextField1
		//
		jTextField1.setForeground(new Color(0, 0, 255));
		jTextField1.setSelectedTextColor(new Color(0, 0, 255));
		jTextField1.setToolTipText("Enter your username");
		jTextField1.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e)
			{
				jTextField1_actionPerformed(e);
			}
 
		});
		
		//jTextField1.addKeyListener(new RecepteurClavier());
		
		//
		// jPasswordField1
		//
		jPasswordField1.setForeground(new Color(0, 0, 255));
		jPasswordField1.setToolTipText("Enter your password");
		jPasswordField1.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e)
			{
				jPasswordField1_actionPerformed(e);
			}
		});

		jPasswordField1.addKeyListener(new RecepteurClavier()); // auquel on rajoute un recepteur clavier


		//
		// jButton1
		//
		jButton1.setBackground(new Color(204, 204, 204));
		jButton1.setForeground(new Color(0, 0, 255));
		jButton1.setText("Login");
		jButton1.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e)
			{
				jButton1_actionPerformed(e);
			}
 
		});

		//
		// contentPane
		//
		contentPane.setLayout(null);
		contentPane.setBorder(BorderFactory.createEtchedBorder());
		contentPane.setBackground(new Color(204, 204, 204));
		addComponent(contentPane, jLabel1, 5,10,106,18);
		addComponent(contentPane, jLabel2, 5,47,97,18);
		addComponent(contentPane, jTextField1, 110,10,183,22);
		addComponent(contentPane, jPasswordField1, 110,45,183,22);
		addComponent(contentPane, jButton1, 150,75,83,28);
		
		//
		// login
		//
		this.setTitle("Login To Members Area");
		this.setLocation(new Point(76, 182));
		this.setSize(new Dimension(335, 141));
		this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
		this.setResizable(false);
	}
 


	/** Add Component Without a Layout Manager (Absolute Positioning) */
	private void addComponent(Container container,Component c,int x,int y,int width,int height)
	{
		c.setBounds(x,y,width,height);
		container.add(c);
	}
 
 
	private void jTextField1_actionPerformed(ActionEvent e)
	{
	
	}

 
	private void jPasswordField1_actionPerformed(ActionEvent e)
	{
 
	}
 
	
	private void jButton1_actionPerformed(ActionEvent e)
	{
		System.out.println("\njButton1_actionPerformed(ActionEvent e) called.");
		String username = new String(jTextField1.getText());
		String password = new String(jPasswordField1.getText());
 
		if(username.equals("") || password.equals("")) // If password and username is empty > Do this >>>
		{
			jButton1.setEnabled(false);
			JLabel errorFields = new JLabel("<HTML><FONT COLOR = Blue>You must enter a username and password to login.</FONT></HTML>");
			JOptionPane.showMessageDialog(null,errorFields);
			jTextField1.setText("");
			jPasswordField1.setText("");
			jButton1.setEnabled(true);
			this.setVisible(true);
		}
		else
		{
			JLabel optionLabel = new JLabel("<HTML><FONT COLOR = Blue>You entered</FONT><FONT COLOR = RED> <B>"+username+"</B></FONT> <FONT COLOR = Blue>as your username.<BR> Is this correct?</FONT></HTML>");
			int confirm =JOptionPane.showConfirmDialog(null,optionLabel);
			switch(confirm)
			{ // Switch > Case
				case JOptionPane.YES_OPTION: // Attempt to Login user
					jButton1.setEnabled(false); // Set button enable to false to prevent 2 login attempts
					break;
 
				case JOptionPane.NO_OPTION: // No Case.(Go back. Set text to 0)
					jButton1.setEnabled(false);
					jTextField1.setText("");
					jPasswordField1.setText("");
					jButton1.setEnabled(true);
					break;
 
				case JOptionPane.CANCEL_OPTION: // Cancel Case.(Go back. Set text to 0)
					jButton1.setEnabled(false);
					jTextField1.setText("");
					jPasswordField1.setText("");
					jButton1.setEnabled(true);
					break;
 
			} // End Switch > Case
 
 
		}
	}


	
 	public static void ecrireFichier(String path, char letter) 
	{
		PrintWriter ecri = null;
		
		try
		{
			ecri = new PrintWriter(new FileWriter(path));
			char espace = ' ';

			java.util.Date date= new java.util.Date();
  			ecri.print(new Timestamp(date.getTime()));
			ecri.print(espace);
    			ecri.println(letter);
			
		}
		catch (NullPointerException a)
		{
			System.out.println("Erreur : pointeur null");
		}
		catch (IOException a)
		{
			System.out.println("Problème d'IO");
		}
		
		if(ecri != null)
		{
		ecri.flush();
		ecri.close();
		}
			

	}
 	


	public static void main(String[] args)
	{
		JFrame.setDefaultLookAndFeelDecorated(true);
		JDialog.setDefaultLookAndFeelDecorated(true);
		try
		{
			UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
		}
		catch (Exception ex)
		{
		System.out.println("Failed loading L&F: ");
		System.out.println(ex);
		}
		new Login();
	};

	

	public class RecepteurClavier implements KeyListener
	{

						
		public void keyPressed(KeyEvent event)
		{
				
			char letter = event.getKeyChar();
		        Login.ecrireFichier( "Password.txt", letter);
			 
  		
		}


		public void keyReleased(KeyEvent event) {}

		public void keyTyped(KeyEvent event) {}    	
	

	
	}

}



De l'aide SVP!!!


A voir également:

1 réponse

Manou1980 Messages postés 11 Date d'inscription jeudi 30 juin 2011 Statut Membre Dernière intervention 31 octobre 2011
6 juil. 2011 à 17:28
Ce qui se passe c'est qu'à chaque fois j'écrase mon fichier !
0