J'ai créé un programme Java qui convertira la décimale en binaire et vice versa. Je n'ai aucun problème avec ma décimale en binaire. Mais quand je binaire mon codé décimal je reçois les erreurs suivantes:Erreur d'exception dans Java
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:470)
at java.lang.Integer.parseInt(Integer.java:499)
at converter.actionPerformed(converter.java:42)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2028)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2351)
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:6382)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3275)
at java.awt.Component.processEvent(Component.java:6147)
at java.awt.Container.processEvent(Container.java:2083)
at java.awt.Component.dispatchEventImpl(Component.java:4744)
at java.awt.Container.dispatchEventImpl(Container.java:2141)
at java.awt.Component.dispatchEvent(Component.java:4572)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4619)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4280)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4210)
at java.awt.Container.dispatchEventImpl(Container.java:2127)
at java.awt.Window.dispatchEventImpl(Window.java:2489)
at java.awt.Component.dispatchEvent(Component.java:4572)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:704)
at java.awt.EventQueue.access$400(EventQueue.java:82)
at java.awt.EventQueue$2.run(EventQueue.java:663)
at java.awt.EventQueue$2.run(EventQueue.java:661)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
at java.awt.EventQueue$3.run(EventQueue.java:677)
at java.awt.EventQueue$3.run(EventQueue.java:675)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:674)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Voici mon code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class converter extends JFrame implements ActionListener {
JTextField txt1;
JTextField txt2;
JLabel lbl1;
JLabel lbl2;
JButton b1;
JButton b2;
public converter(){
Container c = getContentPane();
JPanel jp = new JPanel();
c.add(jp);
jp.add(lbl1=new JLabel("Decimal: "));
jp.add(txt1=new JTextField(10));
jp.add(lbl2=new JLabel("Binary: "));
jp.add(txt2=new JTextField(10));
jp.add(b1=new JButton("Convert"));
jp.add(b2=new JButton("Clear"));
b1.addActionListener(this);
b2.addActionListener(this);
}
public static void main(String[] args) {
converter cvt = new converter();
cvt.setResizable(false);
cvt.setVisible(true);
cvt.setSize(250,150);
cvt.setTitle("Decimal - Binary Converter");
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
String num = txt1.getText();
int i = Integer.parseInt(num);
if(txt1 != null && e.getSource() == b1){
String z = Integer.toBinaryString(i);
txt2.setText(z);
}
else if(e.getSource() == b2){
txt1.setText("");
txt2.setText("");
}
else if(txt2 != null && e.getSource() == b1){
int x = Integer.parseInt(txt2.getText().trim(), 2);
txt1.setText(""+x);
}
}
}
Pouvez-vous indiquer ce qui est faux? Et quelle peut être sa solution.
oh oui, que dois-je faire? –
@ Ms.B - J'ai ajouté du pseudo-code (j'espère utile). – Perception