todemfeuwoboris
Messages postés4Date d'inscriptiondimanche 16 mai 2010StatutMembreDernière intervention12 juin 2011
-
12 juin 2011 à 23:37
Utilisateur anonyme -
16 juin 2011 à 23:09
voici mon code et j'ai cette erreur
code
public class compl {
private float Reel;
private float Imaginaire;
public void setreel(float Creel){
this.Reel = Creel;
}
public void setimg(float Cimaginaire){
this.Imaginaire = Cimaginaire;
}
public compl Additioncomp (compl a,compl b){
float c,f;
compl v = new compl();
c = a.getreel()+ b.getreel();
v.setreel(c);
f = a.getimag()+ b.getimag();
v.setimg(f);
return(v);
}
public compl Soustrationcomp (compl a,compl b){
float c,f;
compl v = new compl();
c = a.getreel()- b.getreel();
v.setreel(c);
f = a.getimag()- b.getimag();
v.setimg(f);
return(v);
}
public compl Multiplicationcomp (compl a,compl b){
float c,f;
compl v = new compl();
c = (a.getreel()*b.getreel())-(a.getimag()* b.getimag());
v.setreel(c);
f = (a.getreel()*b.getimag())+( b.getreel()*a.getimag());
v.setimg(f);
return(v);
}
public compl Divisioncomp (compl a,compl b){
//partie a faire ca ce qui est en place me respecte par ce qui est en place
float c,f;
compl v = new compl();
c = (a.getreel()*b.getreel())-(a.getimag()* b.getimag());
v.setreel(c);
f = (a.getreel()*b.getimag())+( b.getreel()*a.getimag());
v.setimg(f);
return(v);
}
public compl Inversecomp (compl a){
//partie a faire ca ce qui est en place me respecte par ce qui est en place
float c,f;
compl v = null;
c = a.getreel() /((float)(Math.pow(a.getreel(),2))+(float)(Math.pow(a.getimag(),2)));
v.setreel(c);
f = a.getimag() /((float)(Math.pow(a.getreel(),2))+(float)(Math.pow(a.getimag(),2)));
v.setimg(f);
return(v);
}
public compl Opposecomp (compl a){
float c,f;
compl v = null;
c = -(a.getreel()) ;
v.setreel(c);
f = -(a.getimag());
v.setimg(f);
return(v);
}
public compl Modulecomp (compl a){
float c;
compl v = null;
c = (float) Math.sqrt((Math.pow(a.getreel(),2)+ Math.pow(a.getimag(),2)));
v.setreel(c);
return(v);
}
public compl Argumentcomp (compl a){
float c;
compl v = null;
c = (float) Math.atan(a.getimag()/a.getreel());
v.setreel(c);
return(v);
}
public compl Racine_Carrecomp (compl a){
float c;
compl v = null;
c = (float) Math.tan(a.getimag()/a.getreel());//formule a verifier
v.setreel(c);
return(v);
}
}
et voici la fenetre
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.lang.Float.*;
public class fenetre extends JFrame implements ActionListener{
JPanel panelMain,bas;
JMenu menu,menu1;
JMenuBar bar;
JMenuItem item1,item2,item3,item4;
JButton addition,multiplication,division,diviser,additionner,inverse,soustration,oppose,racine_carre,argument,module,quitte,A_propos,Aide;
JButton Iadd,Isous,Idiv,Imult,Iinv,Iop,Iarg,Imod,Irac;
JTextField op1_1,op1_2,op2_1,op2_2;
JLabel result,result1,result2,result3,operante1_1,operante1_2,operante2_1,operante2_2;
JLabel info,affich;
JPanel t = new JPanel();
Font police = new Font("calibri", Font.BOLD, 14);
Font policetext = new Font("Monotype Corsiva",Font.BOLD, 14);
Font fbas = new Font("forte",Font.PLAIN, 36);
compl cp = new compl();
//Inventory in = new Inventory();*/
menu = new JMenu("operations");
menu1 = new JMenu("historique");
// menu4 = new JMenu("Quitte");
item1 = new JMenuItem("operation binaire");
item2 = new JMenuItem("operation unaire");
item3 = new JMenuItem("visualise historique");
item4 = new JMenuItem("reinitialise historique");
quitte = new JButton("Quitte");
quitte.addActionListener(this);
A_propos = new JButton("A_propos");
A_propos.addActionListener(this);
Aide = new JButton("Aide");
Aide.addActionListener(this);
Iadd = new JButton("Aide");
Iadd.addActionListener(this);
Isous = new JButton("Aide");
Isous.addActionListener(this);
Imult = new JButton("Aide");
Imult.addActionListener(this);
Idiv = new JButton("Aide");
Idiv.addActionListener(this);
addition = new JButton("Addition");
addition.addActionListener(this);
additionner = new JButton("Additionner");
additionner.addActionListener(this);
multiplication = new JButton("Multiplication");
multiplication.addActionListener(this);
division = new JButton("Division");
division.addActionListener(this);
inverse = new JButton("Inverse");
inverse.addActionListener(this);
soustration = new JButton("soustration");
soustration.addActionListener(this);
module = new JButton("Module");
module.addActionListener(this);
argument = new JButton("Argument");
argument.addActionListener(this);
racine_carre = new JButton("Racine_carre");
racine_carre.addActionListener(this);
oppose = new JButton("Oppose");
oppose.addActionListener(this);
op1_1 = new JTextField();
op1_1.setFont(police);
op1_1.setForeground(Color.DARK_GRAY);
op1_2 = new JTextField();
op1_2.setFont(police);
op1_2.setForeground(Color.DARK_GRAY);
op2_1 = new JTextField();
op2_1.setFont(police);
op2_1.setForeground(Color.DARK_GRAY);
op2_2 = new JTextField();
op2_2.setFont(police);
op2_2.setForeground(Color.DARK_GRAY);
result = new JLabel();
result1 = new JLabel();
result2 = new JLabel();
result3 = new JLabel();
info = new JLabel("BIENVENUE");
affich = new JLabel();
operante1_1 = new JLabel("REEL 1_1 :");
operante1_2 = new JLabel("IMAGINAIRE 1_1 :");
operante2_1 = new JLabel("REEL 2_1 : ");
operante2_2 = new JLabel("IMAGINAIRE 2_2 :");
info.setVisible(true);
panelMain.updateUI();
}
if (e.getSource() == item3)
{
}
if (e.getSource() == item4)
{
}
if (e.getSource() == A_propos)
{
String message = "CompC V 0.1 \n This Application has a copyright All use \n other to" +
" a personal usage will be seriously punished by the law \n Development Group :\n" +
" - Todem Feuwo Boris \n Copyright 2010 - 2011";
JOptionPane jop1;
jop1 = new JOptionPane();
jop1.showMessageDialog(null, message, "A Propos", JOptionPane.INFORMATION_MESSAGE);
}
if (e.getSource() == Aide)
{
String message = "CompC V 0.1 \n This Application has a copyright All use \n other to" +
" ce logiciel a pour fonction de facilite le calcul des complexe\n" +
" le logiciel vous propose deux types d'operations binaires et unaires\n" +
" - Todem Feuwo Boris \n Copyright 2010 - 2011";
JOptionPane jop1;
jop1 = new JOptionPane();
jop1.showMessageDialog(null, message, "A Propos", JOptionPane.INFORMATION_MESSAGE);
}
if (e.getSource() == quitte)
{
System.exit(0);
}
if (e.getSource() == addition )
{
panelMain.removeAll();
panelMain.updateUI();
panelMain.setLayout(null);
info.setText(" Resultat");
info.setBounds(150, 20, 250, 30);
panelMain.add(info);
info.setVisible(true);
// if(!operante1_1.getText().isEmpty()||!operante1_2.getText().isEmpty()||!operante2_1.getText().isEmpty()||!operante2_2.getText().isEmpty()){
c1 = Float.parseFloat(operante1_1.getText());// ici je recupere la valeur et je converti en float
co1.setreel(c1);
c2 = Float.parseFloat(operante1_2.getText());// ici je recupere la valeur et je converti en float
co1.setimg(c2);
c3 = Float.parseFloat(operante2_1.getText());// ici je recupere la valeur et je converti en float
co2.setreel(c3);
c4 = Float.parseFloat(operante2_2.getText());// ici je recupere la valeur et je converti en float
co2.setimg(c4);
co3 = co3.Additioncomp(co1,co2);
JLabel resultat = new JLabel();
String res = " Le Resultat est : " + co3.getreel() + " + " + co3.getimag() + "i";
resultat.setText("a plus");
result.setBounds(100, 230, 250, 30);
panelMain.add(result);
panelMain.add(resultat);
resultat.updateUI();
resultat.setVisible(true);
panelMain.updateUI();
}
}
}
et voici l'erreur que cela retourne :
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "REEL 1_1 :"
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1224)
at java.lang.Float.parseFloat(Float.java:422)
at complexe.fenetre.actionPerformed(fenetre.java:523)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6263)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3255)
at java.awt.Component.processEvent(Component.java:6028)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2475)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
CETTE reponse appareil lorsque j'appui sur le bouton adittionner pardon j'ai besoin de votre aide sur ce coup la merci d'avance je suis nouveau dans le java
cs_GodConan
Messages postés2113Date d'inscriptionsamedi 8 novembre 2003StatutContributeurDernière intervention 6 octobre 201212 13 juin 2011 à 01:55
bonjour, (ce n est jamais inutil de commencer pas ça)
Quelle horreure !!! Sans parler du manque de formatage du code. Les noms variables ne ressemblent à rien et une bonne partie des conventions d'écriture JAVA ne sont pas appliquées... Beaucoup trop fatiguant à lire...
Ensuite, cela manque cruellement de close try/catch... qui permetraient d'affiner la recherche d'erreur ...
Cependant, en lisant le message d'erreur, il apparait évident qu une opération de parseFloat ne peut s'effectuer correctement. Fait donc un system out de toutes les String avant de les parser tu mettra en évidence celle qui ne conviend pas et il sera plus facil de trouver pourquoi!! ... surement une valeur non numérique.
Je suis d'accord avec GodConan, utilise les balises pour afficher le code et code mieux que ça ! C'est vraiment massacrer le langage
Sinon, comme cela a été dit plus haut, fais utilises un bloc try/catch dans ton actionPerformed pour pouvoir attraper l'exception levée afin qu'elle ne fasse pas planter ton programme.
Un truc du genre :
if (e.getSource() == additionner ) {
try {
// ton code
} catch ( Exception e ){
System.out.println("Exception levée ici" + e.printStackTrace());
}
}
A mon avis, tu as inséré une mauvaise valeur qui n'a put être convertie en float. C'est aussi bête que ça.
Quand tu fais des casts de ce genre, assure toi que les valeurs à transformer soient correctes. Donc soit tu les testes, soit tu utilises les try/catch.
--
Pylouq (actuellement jongleur de clavier AZERTY et de clavier QWERTZ)