URGENT : Pouvez-vous m'aider pour mon programme?

URGENT : Pouvez-vous m'aider pour mon programme? - Java - Programmation

Marsh Posté le 12-04-2015 à 10:20:27    

Bonjour à tous, j'ai un petit souci : j'ai fait un programme java calculant le pgcd et le ppcm de deux nombres, et je voudrais le représenter sur une interface graphique. J'ai déjà créé une fenêtre, j'y ai mis un panneau, deux champs de texte et un bouton, cependant je n'arrive pas à faire en sorte que les valeurs que j'entre dans les champs de texte soient prises en compte ni à faire afficher le résultat, pouvez-vous m'aider?
 
Voici ce que j'ai tapé jusqu'à présent :  

Code :
  1. import java.util.Scanner;
  2. import javax.swing.*;
  3. import java.awt.*;
  4. import java.awt.event.*;
  5. import javax.swing.border.*;
  6. public class Pgcdppcmgraphique {
  7. public static void main(String[] args) {
  8.   FenetreAvecBouton fen = new FenetreAvecBouton();
  9.   fen.setVisible(true);
  10.   fen.setDefaultCloseOperation(3);
  11.   fen.setSize(800,600);
  12.   fen.setResizable(false);
  13.   fen.setTitle("PGCD/PPCM" );
  14.   char reponse = ' ';
  15.   Scanner sc = new Scanner(System.in);
  16.       int a,b,x,t,m;
  17.       do{
  18.        System.out.println("Entrez le premier nombre:" );
  19.        a = sc.nextInt ();
  20.        System.out.println("Entrez le deuxieme nombre:" );
  21.        b = sc.nextInt ();
  22.        if (b>a)
  23.        {x=b;
  24.        b=a;
  25.        a=x;}
  26.        if (a%b==0)
  27.        System.out.println("Le PPCM est :"+a);
  28.        else
  29.        {t=(a*b);
  30.        while(b != 0)
  31.        {x = a%b;
  32.         a = b;
  33.         b = x;}
  34.         m=t/a;
  35.        System.out.println ("Le PPCM est :"+m);
  36.        }
  37.        while(b != 0)
  38.        {x = a%b;
  39.         a = b;
  40.         b = x;}
  41.        System.out.print("Le PGCD est :"+a);
  42.        do{
  43.      System.out.println ("\nSouhaitez vous réutliser le programme ?(O/N)" );
  44.      reponse = sc.next().charAt(0);
  45.     }while(reponse != 'O' && reponse != 'N');
  46.        }while (reponse == 'O');
  47.       sc.close();
  48.       System.out.println ("Goude Baille" );
  49.      }
  50. }
  51. class FenetreAvecBouton extends JFrame implements ActionListener{
  52. private JPanel pan1;
  53. private JButton résultat;
  54. private JTextField nombre1, nombre2;
  55. private JLabel entrera = new JLabel();
  56. private JLabel entrerb = new JLabel();
  57. int a,b,x,t,m;
  58. public FenetreAvecBouton() {
  59.  setBounds(200,200,420,450);
  60.  setTitle("" );
  61.     Border bord = new LineBorder(Color.black);
  62.         JButton résultat = new JButton();
  63.         résultat.setText("Réponse" );
  64.         Container co = getContentPane();
  65.  co.setLayout(new FlowLayout());
  66.  co.add(résultat);
  67.  résultat.addActionListener(this);
  68.  pan1 = new JPanel();
  69.  pan1.setPreferredSize(new Dimension(780,530));
  70.  pan1.setBorder(bord);
  71.     JTextField nombre1 = new JTextField();
  72.     nombre1.addActionListener(this);
  73.     JTextField nombre2 = new JTextField();
  74.     nombre2.addActionListener(this);
  75.  pan1.add(nombre1);
  76.     pan1.add(nombre2);
  77.     nombre1.setPreferredSize(new Dimension(78,27));
  78.     nombre2.setPreferredSize(new Dimension(78,27));
  79.     co.add(pan1);
  80. }
  81.     public void actionPerformed(ActionEvent ae){
  82.  JOptionPane réponse;
  83.  réponse = new JOptionPane();
  84.  a = nombre1.getText();
  85.  b = nombre2.getText();
  86.  if (b>a)
  87.         {x=b;
  88.         b=a;
  89.         a=x;}
  90.         if (a%b==0)
  91.         réponse.showMessageDialog(null,"Le PPCM est :"+a,"Résultat",JOptionPane.INFORMATION_MESSAGE);
  92.         else
  93.         {t=(a*b);
  94.         while(b != 0)
  95.         {x = a%b;
  96.          a = b;
  97.          b = x;}
  98.          m=t/a;
  99.         réponse.showMessageDialog(null,"Le PPCM est :"+m,"Résultat",JOptionPane.INFORMATION_MESSAGE);
  100.         }
  101.         while(b != 0)
  102.         {x = a%b;
  103.          a = b;
  104.          b = x;}
  105.         réponse.showMessageDialog(null,"Le PGCD est :"+a,"Résultat",JOptionPane.INFORMATION_MESSAGE);
  106. }
  107. }


 
 
Merci d'avance, j'attends vos réponses :)


Message édité par the_rosario_7 le 12-04-2015 à 10:23:40
Reply

Marsh Posté le 12-04-2015 à 10:20:27   

Reply

Marsh Posté le 12-04-2015 à 23:03:01    

1) tu mélanges un Scanner avec une interface graphique.. relis tes cours avant d’écrire une seule ligne de code
2) tu mets des accents dans ton code c'est impardonnable
3) le code que tu fournis ne compile même pas car tu tentes de faire rentrer un élément de type String dans un Integer, c'est pourtant ton premier message d'erreur
 
En temps normal t'aurais déjà eu l'aide que tu demandes mais tu fais pas d'effort

Reply

Marsh Posté le 17-04-2015 à 08:10:18    

Outre ce qui a été dit plus haut :
 
- commente l'utilisation de toute la partie ou tu utilises l'objet Scanner, si tu utilises une interface swing, tu n'en auras pas besoin.
Ton main ne devrait lancer soit l'interface graphique, soit le mode avec Scanner.
 
- le calcule de ton modulo devrait aussi être externalisé dans une méthode à part. tu t'y retrouverais mieux.
 
- Ton vrai problème, celui qui fait que quand tu cliques sur le bouton de ton interface bah ça ne fait rien, c'est justement parce que tu n'as associé aucune action à ton input (ton bouton).
 
si tu utilises actionperformed, tu dois tester ce qu'il se passe sur ta fenetre :
 Si on appui sur mon bouton, je fais ça.
etc etc.
 
en gros dans ton acitonperformed tu devrais avoir un truc du genre :
 if (e.getSource().equals(résultat)  {  
   jedevraisliredestutosplutotquedecopiercollerpartout();
}
 
et tu fais ça pour chaque truc qui est sensé déclencher une action.
 
Sinon, tu peux faire autrement, à la création du bouton, tu lui associes ton action :
 
Bouton résultat = nouveau bouton
bouton.addactionlistener et directement en parametre de addactionlister  tu mets ton action performed SANS LES DEUX LIGNES ou tu parles de JOptionPane quand même (t'en as pas besoin... copier collé c'est mal !


---------------
bnet : Grimbergen#2233
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed