Faire Application MD5

Fermé
Kali01? - Modifié par Kali01? le 19/06/2014 à 16:17
EminoMeneko Messages postés 2434 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 23 mai 2018 - 21 août 2014 à 01:41
Bonjour tout le monde :)

Je débute en JAVA et j'essaye actuellement de faire une petite app. basique qui convertie une chaîne de caractères en MD5.

Comme j'ai du mal a suivre le cours de JAVA sans faire beaucoup de pratique, je cherche a droite a gauche des bouts de codes a comprendre et a modifier pour en faire quelque chose.

Mais la c'est une de mes premières app. en graphique et je ne trouve pas comment prendre une valeur de type String entrée par l'utilisateur..

J'ai utilisé JTextField (pour la première fois) et j'ai fait de mon mieux mais ca ne fonctionne pas.
( je n'ai pas tout compris quand a l'utilisation de JTextField)

Pour le moment j'arrive juste a avoir la fenêtre avec le bouton "OK !" et l'endroit ou l'on entre le mot..

Voila mon code :


import java.math.BigInteger;
import javax.swing.JButton;
import javax.swing.JLabel;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import javax.swing.JOptionPane;

public class Crypter extends JFrame {
private JPanel container = new JPanel();
private JTextField pass = new JTextField(" ");
private JLabel label = new JLabel ("Entrez votre mot");
private JButton bouton = new JButton ("OK !");

//======================================================
public Crypter()
{
container = new JPanel(new BorderLayout(50, 60)); // Taille des boutons
label = new JLabel();
container.add(bouton, BorderLayout.WEST);

add(container);
setVisible(true);


this.setTitle("MD5");
this.setSize(400, 400);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLocationRelativeTo(null); // Pas compris cette ligne ???
container.setBackground(Color.white);
container.setLayout(new BorderLayout());
JPanel top = new JPanel();
Font police = new Font("Arial", Font.BOLD, 14);
pass.setFont(police);
pass.setPreferredSize(new Dimension(150, 30));
pass.setForeground(Color.BLUE);
top.add(label);
top.add(pass);
container.add(top, BorderLayout.NORTH);
this.setContentPane(container);
this.setVisible(true);
}
//======================================================
public void action(ActionEvent e)
{
if(e.getSource() == bouton)
{
container.remove(label);
this./////


container.add(label, BorderLayout.CENTER);
container.repaint();
container.validate();

}
//======================================================
class ButtonListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
try
{
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(pass.getBytes(), 0, pass.length());
JOptionPane.showMessageDialog(null, new BigInteger(1, md.digest()).toString(16));
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
}
}
//======================================================

public static void main(String[] args)
{
new Crypter();


}

}


A voir également:

1 réponse

EminoMeneko Messages postés 2434 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 23 mai 2018 318
21 août 2014 à 01:41
Dans le constructeur de ta classe tu as setVisible(true); bien trop tôt. D'ailleurs il apparait deux fois un au milieu mal placé et un autre tout à la fin qui est à la bonne place.

Tu initialise 2 fois tes attributs. A quoi ça sert ? mets les premiers à null et initialise les dans ton constructeur.
Exemple;

private JPanel container = null
private JTextField pass = null;
private JLabel label = null;
private JButton bouton = new JButton ("OK !");

//======================================================
public Crypter()
{
container = new JPanel(new BorderLayout(50, 60)); // Taille des boutons
label = new JLabel ("Entrez votre mot");
...

Je ne me souviens plus pour sur mais cette ligne mets ta fenêtre au milieu de l'écran.
this.setLocationRelativeTo(null); // Pas compris cette ligne ???

Bon le constructeur est pas super bien écrit.

Essayes comme ça.

Initialise tes composants
ensuite ajoutes les à ton panel
Quand ton panel est pret ajoute le au JFrame.
Configure tout ce que tu veux sur le JFrame.
Met le JFrame à visible à la fin.

Ça devrait aller mieux.
0