Java 按下取消按钮后出错';C';在计算器中(EclipseIDE和swings)
这是我在按下“=”按钮之前按下“取消”按钮时的代码,它工作正常,但在按下“=”之后显示最终结果,如果按下“C”按钮,则显示java.lang.NumberFormatException这里是一段代码,“convert”和“s”是一个字符串Java 按下取消按钮后出错';C';在计算器中(EclipseIDE和swings),java,swing,numberformatexception,Java,Swing,Numberformatexception,这是我在按下“=”按钮之前按下“取消”按钮时的代码,它工作正常,但在按下“=”之后显示最终结果,如果按下“C”按钮,则显示java.lang.NumberFormatException这里是一段代码,“convert”和“s”是一个字符串 if(e.getSource() == buttonOp){ convert = Integer.parseInt(txt.getText()); System.out.println("
if(e.getSource() == buttonOp){
convert = Integer.parseInt(txt.getText());
System.out.println("parsing done!");
String choice = e.getActionCommand();
if(choice.equals("x^2")){
txt.setText("");
total = convert * convert;
System.out.println("total is"+total);
s += txt.getText();
}
else if(choice.equals("x^3")){
txt.setText("");
total = convert * convert * convert;
s += txt.getText();
}
else if (choice.equals("=")){
//txt.setText(choice);
// number = true;
number = false;
txt.setText("");
System.out.println("pressed '='");
if(txt.getText().length() > 0){
StringBuilder sb = new StringBuilder(txt.getText());
sb.delete(0, txt.getText().length());
s = sb.toString();
}
s = Double.toString(total);
s += txt.getText();
}
/*else if (choice.equals("+")){
total = convert;
}*/
else if(choice.equals("C")){
System.out.println("pressing C");
if(txt.getText().length()>0){
StringBuilder str = new StringBuilder(txt.getText());
str.deleteCharAt(txt.getText().length()-1);
s = str.toString();
}
txt.setText(s);
}
}
else{
txt.setText(null);
}
txt.setText(s);
}
});
这是我在“=”之后按“Ç”得到的输出
parsing done!
total is2601.0
parsing done!
pressed '='
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "2601.0"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at cal.Calculator$2.actionPerformed(Calculator.java:95)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
例外
…parseInt(未知源)
…对于输入字符串:“2601.0”
因此,您正在调用parseInt()
,以获取非int格式的值(“2601.0”)
我想你的问题在这里
if(e.getSource() == buttonOp){
convert = Integer.parseInt(txt.getText()); // <<<<
if(例如getSource()==buttonOp){
convert=Integer.parseInt(txt.getText());//来自异常
…parseInt(未知源)
…对于输入字符串:“2601.0”
因此,您正在调用parseInt()
,以获取非int格式的值(“2601.0”)
我想你的问题在这里
if(e.getSource() == buttonOp){
convert = Integer.parseInt(txt.getText()); // <<<<
if(例如getSource()==buttonOp){
convert=Integer.parseInt(txt.getText());//代码中的哪一行是行计算器:95?要尽早获得更好的帮助,请发布或。代码中的哪一行是行计算器:95?要尽早获得更好的帮助,请发布或。