IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Programme JAVA - aide minime


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2013
    Messages : 9
    Par défaut Programme JAVA - aide minime
    Bonjour à tous,

    alors voilà, je suis un élève de terminale en section ISN, notre professeur nous a donné tout au long de l'année un algorithme à faire et à ensuite reconvertir en JAVA et ensuite en faire un programme avec des boutons.
    J'en suis à la fin j'ai mon application graphique avec tous les boutons, seulement voilà, je ne sais pas associé mon bouton "Traduire" à mon algorithme qui permet de transformer un mot en binaire, je vous laisse voir mon code :

    ceci est ma classe conteneur : ( si vous voulez les autres, dite le moi ), mon problème est vers la fin, ou le bouton traduire doit executé mon algo pour afficher sur le texte résultat bah le résultat x) Merci d'avance pour votre aide

    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
    import java.awt.Button;
    import java.awt.Color;
    import java.awt.Font;
    import java.awt.Label;
    import java.awt.TextField;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.util.Scanner;
    import javax.swing.JPanel;
     
     
    public class Conteneur extends JPanel implements ActionListener {
     
    	/************************************************************/
    	// Variables
    	/************************************************************/
     
    	   Label lbmot = new Label();
    	   Label lbresultat = new Label();
    	   TextField txmot = new TextField();
    	   TextField txresultat = new TextField();
    	   Button bttraduire = new Button("Traduire");
     
    	   Font police = new Font("Arial", Font.BOLD, 15);
    	   int mot = 0;
     
     
     
    		// Initialisation des Label
     
    	   public Conteneur() {
    			setLayout(null);
     
    	lbmot.setBounds(100, 5, 100, 20);
    	lbmot.setText("Entrer un mot");
    	lbmot.setBackground(Color.black);
    	lbmot.setForeground(Color.white);
    	lbmot.setFont(police);
     
    	lbresultat.setBounds(105, 90, 80, 20);
    	lbresultat.setForeground(Color.white);
    	lbresultat.setBackground(Color.black);
    	lbresultat.setAlignment(Label.CENTER);
    	lbresultat.setText("Résultat");
    	lbresultat.setFont(police);
     
    		// Initialisation zone de texte
     
    	txmot.setBounds(50, 30, 200, 40);
     
    	txresultat.setBounds(50, 120, 200, 40);
     
     
    		// Initialisation des boutons
     
    	bttraduire.setBounds(100, 180, 100, 30);
    	bttraduire.setFont(police);
    	bttraduire.setForeground(Color.red);
    	bttraduire.setBackground(Color.black);
    	bttraduire.addActionListener(this);
     
    		// Ajout des objets au conteneur
     
    	add(lbmot);
    	add(lbresultat);
     
    	add(txmot);
    	add(txresultat);
     
    	add(bttraduire);
    	   }
     
    		// Debut programme (fonctions)
     
    	public int codeur(){
     
    		int code = 0;
    		int i = 0;
    		int reste = 0;
    		int quotient = 0;
    		int nbbinaire = 0;
    		int puissance = 0;
    		String mot = new String();
     
    		// Debut algorithme, entrer mot
     
    				System.out.println(" Veuillez entrer un mot :");
     
    				// Lecture de la variable
     
    				Scanner sc = new Scanner(System.in);
    				mot = sc.next();
     
     
    				// Obtention du code ASCII
     
    				for (i = 0 ; i <= mot.length()-1 ; i++) {
     
    					code = mot.charAt(i);
    					puissance = 1;
    					nbbinaire = 0;
     
     
    					while (code!=0) {
     
    				// Obtention du code binaire
     
    				    quotient = (int) Math.floor(code / 2d);
    					reste = code%2;
    					nbbinaire = nbbinaire + reste * puissance;
    					puissance = puissance*10;
    					code = quotient;
     
    					}
     
     
    					System.out.print(0);
    					System.out.print(nbbinaire);
     
    				}
    				return nbbinaire;
    	}
     
     
    				// Evènement déclenché par le clic "Traduire"
     
    	public void actionPerformed1(ActionEvent e) {
    		Object source = e.getSource();  // Détection du bouton dont provient le clic
     
    		if ( source == bttraduire ){
     
    			txresultat.setText(String.valueOf(codeur()));
     
     
     
    		}
    		}
     
     
     
    	public void actionPerformed(ActionEvent arg0) {
     
    	} }

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    394
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 394
    Par défaut
    Bonjour,

    Le code qui est dans actionPerformed1 doit être déplacé dans actionPerformed et tu peux supprimer actionPerformed1 elle ne sert à rien cette méthode.

    Romain.

  3. #3
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2013
    Messages : 9
    Par défaut
    merci mais mon but est que mon programme affiche le résultat de mon algorithme ^^

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    394
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 394
    Par défaut
    Prenons les choses dans l'ordre. Ta question était :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    je ne sais pas associé mon bouton "Traduire" à mon algorithme qui permet de transformer un mot en binaire
    Quand tu cliques sur le bouton Traduire c'est la méthode actionPerformed qui est appelée. Il faut donc mettre le code de ton algorithme dans cette méthode. Donc ça devrait répondre à ta première question ?

    Pour ta deuxième question. Ton erreur se situe à ce niveau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    String mot = new String();
     
    		// Debut algorithme, entrer mot
     
    				System.out.println(" Veuillez entrer un mot :");
     
    				// Lecture de la variable
     
    				Scanner sc = new Scanner(System.in);
    				mot = sc.next();
    En mode graphique tu ne veux pas lire ton mot depuis la console, mais depuis ton TextField. Il ne faut plus faire appel à Scanner. Remplace par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String mot = txmot.getText();
    Dans ta méthode codeur, il ne faut pas utiliser de system.out non plus pour afficher le résultat. System.out ça affiche le résultat dans la console. Il faut que tu mettes le résultat de ta conversion binaire dans un StringBuffer. :

    Au final ça donne :
    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
    public class Conteneur extends JPanel implements ActionListener
    {
     
        /**
         * serialVersionUID
         */
        private static final long serialVersionUID = 1L;
     
        /************************************************************/
        // Variables
        /************************************************************/
     
        Label lbmot = new Label();
     
        Label lbresultat = new Label();
     
        TextField txmot = new TextField();
     
        TextField txresultat = new TextField();
     
        Button bttraduire = new Button("Traduire");
     
        Font police = new Font("Arial", Font.BOLD, 15);
     
        int mot = 0;
     
        // Initialisation des Label
     
        public Conteneur()
        {
            setLayout(null);
     
            lbmot.setBounds(100, 5, 100, 20);
            lbmot.setText("Entrer un mot");
            lbmot.setBackground(Color.black);
            lbmot.setForeground(Color.white);
            lbmot.setFont(police);
     
            lbresultat.setBounds(105, 90, 80, 20);
            lbresultat.setForeground(Color.white);
            lbresultat.setBackground(Color.black);
            lbresultat.setAlignment(Label.CENTER);
            lbresultat.setText("Résultat");
            lbresultat.setFont(police);
     
            // Initialisation zone de texte
     
            txmot.setBounds(50, 30, 200, 40);
     
            txresultat.setBounds(50, 120, 200, 40);
     
            // Initialisation des boutons
     
            bttraduire.setBounds(100, 180, 100, 30);
            bttraduire.setFont(police);
            bttraduire.setForeground(Color.red);
            bttraduire.setBackground(Color.black);
            bttraduire.addActionListener(this);
     
            // Ajout des objets au conteneur
     
            add(lbmot);
            add(lbresultat);
     
            add(txmot);
            add(txresultat);
     
            add(bttraduire);
        }
     
        // Debut programme (fonctions)
     
        public String codeur()
        {
     
            int code = 0;
            int i = 0;
            int reste = 0;
            int quotient = 0;
            int nbbinaire = 0;
            int puissance = 0;
            String mot = txmot.getText();
     
            StringBuffer resultat = new StringBuffer();
            // Obtention du code ASCII
            for (i = 0; i <= mot.length() - 1; i++)
            {
     
                code = mot.charAt(i);
                puissance = 1;
                nbbinaire = 0;
     
                while (code != 0)
                {
     
                    // Obtention du code binaire
     
                    quotient = (int) Math.floor(code / 2d);
                    reste = code % 2;
                    nbbinaire = nbbinaire + reste * puissance;
                    puissance = puissance * 10;
                    code = quotient;
     
                }
     
                resultat.append(0).append(nbbinaire);
     
            }
            return resultat.toString();
        }
     
        public void actionPerformed(ActionEvent arg0)
        {
            Object source = arg0.getSource(); // Détection du bouton dont provient le clic
     
            if (source == bttraduire)
            {
                txresultat.setText(codeur());
     
            }
        }
    }
    Romain.

  5. #5
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2013
    Messages : 9
    Par défaut
    Bonsoir romain,

    merci beaucoup de ton aide, c'est super j'apprécie beaucoup, j'étais bloqué, mais par contre, est-ce qu'il serait possible de mettre des commentaires, car il y'a certaines actions que je ne comprend pas, car c'est un programme avec lequel je vais être évalué au BAC ^^, merci beaucoup en tout cas

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    394
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 394
    Par défaut
    Bonjour,

    S'il y a des choses que tu n'as pas comprises n'hésite pas à demander, je t'expliquerai.

    Je ne sais pas quel est le niveau qui est demandé au BAC, mais le code peut être grandement amélioré. Il fonctionne certes, mais n'est pas propre. Ici tu as le modèle, le contrôleur et la vue dans la même classe, avec le modèle (la fonction codeur()) qui a une dépendance forte avec la vue (codeur faisant appel à txmot.getText()). Cette classe ne respecte donc pas l'architecture MVC.

    Romain.

Discussions similaires

  1. Réponses: 1
    Dernier message: 27/01/2011, 13h13
  2. [Language] Aide sur mon premier programme Java?
    Par hash2zo dans le forum Langage
    Réponses: 15
    Dernier message: 27/09/2005, 19h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo