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

AWT/Swing Java Discussion :

Addition ne fonctionne pas


Sujet :

AWT/Swing Java

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 108
    Points : 83
    Points
    83
    Par défaut Addition ne fonctionne pas
    Je ne comprend pas pourquoi j'arrive pas affecter le champ resultat (Addition des deux champs A + B)

    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
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
     
     
    public class CreatingAWindow extends JFrame{
      public static void main(String[] args) 
      {
        new CreatingAWindow();        // Display the window
      }
     
      public CreatingAWindow ()
      {
    	    JFrame frame = new JFrame("Mon Premier Interface Graphique Java");
    	    int windowWidth = 200;  
    	    int windowHeight = 100; 
    	    frame.setBounds(0, 0,windowWidth, windowHeight);
    	    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    	    frame.setVisible(true);   
    	    JButton monBtn = new JButton("Addition !");
    	    JTextField  inputA = new JTextField("");
    	    JTextField  inputB = new JTextField("");
    	    JTextField  resultat = new JTextField("resultat:");
     
    	    frame.setLayout(new GridLayout(3, 2));
    	      frame.add(new JLabel("A:"));
    	      frame.add(inputA);
    	      frame.add(new JLabel("B:"));
    	      frame.add(inputB);
    	      frame.add(monBtn);
    	      frame.add(resultat);
     
    	      monBtn.addActionListener(new ActionListener() 
    	      {
    	    	public void actionPerformed(ActionEvent e)
    	          {
    	         TxtAffectaion() ; 
    	          }
              });
        }
    	public void TxtAffectaion ()
    	{
    		resultat.setText((int) inputA.setText("5")+(int) inputB.setText("1"));
    	}   
     
    }
    latrach.net

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    ce cod ne compilera pas. inputA et inputB ne sont pas visible depuis txtaffectation, car ceux-ci sont des variables locales au constructeur. De plus, setText() retourne un void, pas un int. Pour lire le contenu de du JTextField, il faut utiliser la méthode getText, qui te renvoir un String.

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 108
    Points : 83
    Points
    83
    Par défaut
    Je viend edeclarer les TextField Dans la classe, ca marche sauf que l'addition me retourne des valeurs bizard 1 + 2 =2 voici mon code:

    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
    import javax.swing.*;
     
    import java.awt.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
     
     
    public class CreatingAWindow extends JFrame{
     
    	JButton monBtn = new JButton("Addition !");
        JTextField  inputA = new JTextField("");
        JTextField  inputB = new JTextField("");
        JTextField  resultat = new JTextField("resultat:");
     
      public static void main(String[] args) 
      {
        new CreatingAWindow();        // Display the window
     
      }
     
      public CreatingAWindow ()
      {
    	    JFrame frame = new JFrame("Addition");
    	    int windowWidth = 200;           // Window width in pixels
    	    int windowHeight = 100;          // Window height in pixels
    	    frame.setBounds(0, 0,       // Set position
    	                     windowWidth, windowHeight);  // and size
    	    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    	    frame.setVisible(true);        // Display the window
     
     
     
    	    frame.setLayout(new GridLayout(3, 2));
    	      frame.add(new JLabel("A:"));
    	      frame.add(inputA);
    	      frame.add(new JLabel("B:"));
    	      frame.add(inputB);
    	      frame.add(monBtn);
    	      frame.add(resultat);	      
    	      monBtn.addActionListener(new ButtonListener()); 
              }  
     
    class ButtonListener implements ActionListener 
        {
    	public void actionPerformed(ActionEvent e) 
    	            {
    		        String A = inputA.getText() ;
    		        String B = inputA.getText() ;
    		        int C = Integer.parseInt (A) + Integer.parseInt(B); 
    		        String D= Integer.toString(C);
    	    	    resultat.setText(D);
    	    	    }
    	}	   
    }
    latrach.net

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 108
    Points : 83
    Points
    83
    Par défaut
    c'est bon ca marche en faite, j'ai commis une erreur de copier coller:

    String A = inputA.getText() ;
    String B = inputA.getText() ;
    latrach.net

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 108
    Points : 83
    Points
    83
    Par défaut
    je viens de faire une modification sur la Frame en y rajoutant un JBarMenu:


    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
     
    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;
     
    class Mymenu extends JFrame
    {
            JMenuBar mb;
            JMenu file,edit,font;
            JMenuItem nw,cl,cp,pt;
            JCheckBoxMenuItem pr;
     
            JButton Bt ;
            JTextField  inputA ;
            JTextField  inputB ;
            JTextField  resultat ;
            JFrame frame,c ;   
     
       public  Mymenu()
            {
            	    // FRAME
    	            c = new JFrame();
    	    	    c.setBounds(0, 0, 700, 500); 
    	            c.setVisible(true);     
     
                    //MENU PARINCIPAL
                    mb = new JMenuBar();
                    c.add("North",mb);
                    file = new JMenu("Fichier");
                    edit = new JMenu("Edition");
                    font = new JMenu("Police");
     
                    mb.add(file);
                    mb.add(edit);
     
                    //SOUS MENU
                    nw = new JMenuItem("Nouveau");
                    cl = new JMenuItem("Fermer");
                    cp = new JMenuItem("Copier");
                    pt = new JMenuItem("Coller");
                    file.add(nw);
                    file.add(cl);
                    edit.add(cp);
                    edit.add(pt);
                    cl.setEnabled(true);
                    pr = new JCheckBoxMenuItem("Imprimer");
                    file.add(pr);
                    file.addSeparator();
     
                    file.add(font);
                    font.add("Arial");
                    font.add("Times new Roman");
     
                    //Body   
                    Bt = new JButton("Addition !");
                    inputA = new JTextField("");
                    inputB = new JTextField("");
                    resultat = new JTextField("resultat:");
     
            	    c.setLayout(new GridLayout(4, 2));
            	    c.add(new JLabel("A:"));
            	    c.add(inputA);
            	    c.add(new JLabel("B:"));
            	    c.add(inputB);
            	    c.add(Bt);
            	    c.add(resultat);	      
     
                    //ACTION
                    nw.addActionListener(new NewListener());    	
                    cl.addActionListener(new CloseListener());    	
                    cp.addActionListener(new CopierListener());    	
                    pt.addActionListener(new CollerListener());    	
                    pr.addActionListener(new PrintListener());    	
            	    Bt.addActionListener(new ButtonListener());    	
     
            }  
     
      class ButtonListener implements ActionListener 
           {
         	public void actionPerformed(ActionEvent e) 
         	            {
         		        String A = inputA.getText() ;
         		        String B = inputB.getText() ;
         		        int C = Integer.parseInt (A) + Integer.parseInt(B); 
         		        String D= Integer.toString(C);
         	    	    resultat.setText(D);
         	    	    }
         	}	
      class NewListener implements ActionListener 
        {
     	public void actionPerformed(ActionEvent e) 
     	            {
     	            resultat.setText("new");
     	    	    }
     	}
      class CloseListener implements ActionListener 
        {
     	public void actionPerformed(ActionEvent e) 
     	            {
     	            resultat.setText("close");
     	    	    }
     	}
      class CopierListener implements ActionListener 
       {
     	public void actionPerformed(ActionEvent e) 
     	            {
     	             resultat.setText("copier");
     	    	    }
     	}
      class CollerListener implements ActionListener 
       {
     	public void actionPerformed(ActionEvent e) 
     	            {
     	             resultat.setText("Coller");
     	    	    }
     	}
     class PrintListener implements ActionListener 
        {
     	public void actionPerformed(ActionEvent e) 
     	            {
                     resultat.setText("Print");
     	    	    }
     	}
     
      public static void main(String args[])
            {
                    Mymenu m = new Mymenu();
            }
     
    }
    à l'execution les champs Jframe ne s'affiche pas il y a que le menu qui est visible est dès que je redimensionne la Frame les champs s'affiche mais il sont allignée au menu!!?? merci de votre aide
    latrach.net

  6. #6
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    tu as mis sur ton c un gridlayout de 4x2 avec le menu comme premier élément, cette affichage est donc normal. Habituellement, on stocke les menu dans la zone menu de la JFrame, via setMenuBar()

  7. #7
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 108
    Points : 83
    Points
    83
    Par défaut
    Bonsoir,
    merci de ta reponse, effectivement ce point est réglé, je viens de modifier le code afin de personaliser les dimensions, j'ai utilisé 3 Jpanel afin de crer trois lignes, ce que je ne comprend pas pourqoui il me superpose ces trois dernier,

    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
    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;
     
    class Mymenu extends JFrame
    {
            JMenuBar mb;
            JMenu file,edit,font;
            JMenuItem nw,cl,cp,pt;
            JCheckBoxMenuItem pr;
     
            JButton Bt ;
            JTextField  inputA ;
            JTextField  inputB ;
            JTextField  resultat ;
            JFrame frame,c ;  
            JPanel formulaireLine1,formulaireLine2,formulaireLine3;
     
       public  Mymenu()
            {
            	    // FRAME
    	            c = new JFrame();
    	    	    c.setBounds(0, 0, 300, 200); 	             
     
                    //MENU PARINCIPAL
                    mb = new JMenuBar();                
                    c.setJMenuBar(mb);
                    file = new JMenu("Fichier");
                    edit = new JMenu("Edition");
                    font = new JMenu("Police");                
                    mb.add(file);
                    mb.add(edit);
     
                    //SOUS MENU
                    nw = new JMenuItem("Nouveau");
                    cl = new JMenuItem("Fermer");
                    cp = new JMenuItem("Copier");
                    pt = new JMenuItem("Coller");
                    file.add(nw);
                    file.add(cl);
                    edit.add(cp);
                    edit.add(pt);
                    cl.setEnabled(true);
                    pr = new JCheckBoxMenuItem("Imprimer");
                    file.add(pr);
                    file.addSeparator();
                    file.add(font);
                    font.add("Arial");
                    font.add("Times new Roman");
     
                    //Body 
                    formulaireLine1= new JPanel();
                    formulaireLine2= new JPanel();
                    formulaireLine3= new JPanel();
     
                    Bt = new JButton("Addition !");
                    inputA = new JTextField("");                
                    inputB = new JTextField("");
                    resultat = new JTextField("resultat:");
     
                    formulaireLine1.add(new JLabel("A:"));
                    formulaireLine1.add(inputA);
                    c.add(formulaireLine1);
     
                    formulaireLine2.add(new JLabel("B:"));
                    formulaireLine2.add(inputB);
                    c.add(formulaireLine2);
     
                    formulaireLine3.add(Bt);
                    formulaireLine3.add(resultat);
                    c.add(formulaireLine3);               
     
                    //COLOR
                    formulaireLine1.setBackground(Color.white);
                    mb.setBackground(Color.black);
                    file.setForeground(Color.white); 
                    edit.setForeground(Color.white); 
     
                    //Dimension
                    Dimension Dim1 = new Dimension(150, 30);
                    inputA.setPreferredSize(Dim1);
                    inputB.setPreferredSize(Dim1);
                    resultat.setPreferredSize(Dim1);
     
                    //Visibilité
                    c.setVisible(true); 
     
                    //ACTION
                    nw.addActionListener(new NewListener());    	
                    cl.addActionListener(new CloseListener());    	
                    cp.addActionListener(new CopierListener());    	
                    pt.addActionListener(new CollerListener());    	
                    pr.addActionListener(new PrintListener());    	
            	    Bt.addActionListener(new ButtonListener());    	
     
            }  
     
      class ButtonListener implements ActionListener 
           {
         	public void actionPerformed(ActionEvent e) 
         	            {
         		        String A = inputA.getText() ;
         		        String B = inputB.getText() ;
         		        int C = Integer.parseInt (A) + Integer.parseInt(B); 
         		        String D= Integer.toString(C);
         	    	    resultat.setText(D);
         	    	    }
         	}	
      class NewListener implements ActionListener 
        {
     	public void actionPerformed(ActionEvent e) 
     	            {
     	            resultat.setText("new");
     	    	    }
     	}
      class CloseListener implements ActionListener 
        {
     	public void actionPerformed(ActionEvent e) 
     	            {
     	            resultat.setText("close");
     	    	    }
     	}
      class CopierListener implements ActionListener 
       {
     	public void actionPerformed(ActionEvent e) 
     	            {
     	             resultat.setText("copier");
     	    	    }
     	}
      class CollerListener implements ActionListener 
       {
     	public void actionPerformed(ActionEvent e) 
     	            {
     	             resultat.setText("Coller");
     	    	    }
     	}
     class PrintListener implements ActionListener 
        {
     	public void actionPerformed(ActionEvent e) 
     	            {
                     resultat.setText("Print");
     	    	    }
     	}
     
      public static void main(String args[])
            {
                    Mymenu m = new Mymenu();
            }
     
    }
    latrach.net

  8. #8
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    utilise c.getContentPane().add() et non pas c.add()

    je te recommande d'ailleur de lire quelques tutoriel sur swing pour éviter ce genre d'erreur.

Discussions similaires

  1. Réponses: 6
    Dernier message: 27/01/2004, 11h14
  2. [FP]Writeln ne fonctionne pas !
    Par néo333 dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 01/11/2003, 23h47
  3. UNION qui ne fonctionne pas
    Par r-zo dans le forum Langage SQL
    Réponses: 7
    Dernier message: 21/07/2003, 10h04
  4. Un Hint sur un PopupMenu ne fonctionne pas !!??
    Par momox dans le forum C++Builder
    Réponses: 6
    Dernier message: 26/05/2003, 16h48
  5. ca ne fonctionne pas (generateur auto-incrémentant)
    Par tripper.dim dans le forum SQL
    Réponses: 7
    Dernier message: 26/11/2002, 00h10

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