| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1486 人关注过本帖
标题:[求助]怎么一天到晚就异常。。。疯了。。
只看楼主 加入收藏
qsrock
Rank: 1
等 级:新手上路
帖 子:255
专家分:0
注 册:2005-12-29
收藏
得分:0 
我看了下程序,我帮不了你处理,我只提几个意见
1.觉得actionPerformed()方法里比较乱,因为你在if-else嵌套中又写switch,最好不要这样写
用一个方法来写运算比较好点,如下
public void calculator(double x)
{
if(lastCommand.equals("+")) result+=x;
else if(lastCommand.equals("-")) result-=x;
else if(lastCommand.equals("*")) result*=x;
else if(lastCommand.equals("/")) result/=x;
else if(lastCommand.equals("=")) result=x;
else if(lastCommand.equals("+/-")) result=-x;
display.setText(""+result);
}
2.你用(char flag = 'n'; // 标志按了哪个运算符,初始为n,表示什么运算符没按)
不如用boolean flag=false;做标志位还好些!~
3.还有最好用swing写,不要用awt写!~
请不要怪我乱提意见,呵呵!~
2007-04-29 23:27
tblovecj
Rank: 1
等 级:新手上路
帖 子:181
专家分:0
注 册:2006-9-20
收藏
得分:0 
个人建议如果是需要解决问题的最好是直接把代码发上来,如果是做好的东西让大家分享再打包,不然人的心理因素都不习惯弄半天建了新项目再慢慢找错误,这是所有人的心理因素,你把代码直接发上来,读者直接复制到工具上一粘贴就OK

2007-04-30 01:05
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
以下是引用海蓝啸在2007-4-29 18:21:04的发言:

java.lang.NumberFormatException: For input string: "."
at java.lang.NumberFormatException.forInputString(NumberFormatException.
java:48)
at java.lang.Integer.parseInt(Integer.java:446)
at java.lang.Integer.parseInt(Integer.java:496)
at My_caculator.actionPerformed(My_caculator.java:100)
at java.awt.Button.processActionEvent(Button.java:388)
at java.awt.Button.processEvent(Button.java:356)
at java.awt.Component.dispatchEventImpl(Component.java:3931)
at java.awt.Component.dispatchEvent(Component.java:3779)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh
read.java:234)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
java.lang.NumberFormatException: For input string: "*"
at java.lang.NumberFormatException.forInputString(NumberFormatException.
java:48)
at java.lang.Integer.parseInt(Integer.java:446)
at java.lang.Integer.parseInt(Integer.java:496)
at My_caculator.actionPerformed(My_caculator.java:100)
at java.awt.Button.processActionEvent(Button.java:388)
at java.awt.Button.processEvent(Button.java:356)
at java.awt.Component.dispatchEventImpl(Component.java:3931)
at java.awt.Component.dispatchEvent(Component.java:3779)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh
read.java:234)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

从异常信息来看是你的转换问题,
at My_caculator.actionPerformed(My_caculator.java:100)
看看吧,第100行


可惜不是你,陪我到最后
2007-04-30 09:05
海蓝啸
Rank: 5Rank: 5
来 自:安徽
等 级:贵宾
威 望:17
帖 子:1611
专家分:0
注 册:2006-4-3
收藏
得分:0 
回11楼:我那个flag变量不只是用来判断有没有按运算按纽,还要记录是按了哪个运算按纽,所以换成逻辑型的不行。。
还有就是如果我那个都一个方法来处理,然后在ActionPerformed里面调用,其实这是一个好方法,但是因为我
的源代码比较少,而且也只是调用一次,所以就图省事写在一起了。。还有就是我还不知道swing是什么东西,老
师还没有上到那个地方

回12楼:我有打包上传上来了,在1楼。。下载直接就可以打开

回千里:我看了100行,看不出什么错误。。其实第100行正是可以执行的地方,是输入数字的地方,而恰恰数字可以输入
,运算符,等号,小数点,控制按纽只要点全部都是异常。。不知道怎么回事。。看了半天都没地现有什么不对
的地方,所以如果你要是有空的话,还请帮忙看下。。。谢了

[此贴子已经被作者于2007-4-30 11:26:38编辑过]


这个社会太复杂。。。
2007-04-30 11:26
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
if(Integer.parseInt(e.getActionCommand())>=1&& Integer.parseInt(e.getActionCommand())<=9){ //按的

这是你第100行的程序,还说没有错误?

e.getActionCommand你知道返回的是什么吗?就这样给它转型给整型?

要相信编译器,它提示你这里错了,那就一定是这里错了

java.lang.NumberFormatException: For input string: "."
并且它还提示了你,for input String "." 就是你尝试把"."变成int,这是异常的原因

可惜不是你,陪我到最后
2007-04-30 13:51
海蓝啸
Rank: 5Rank: 5
来 自:安徽
等 级:贵宾
威 望:17
帖 子:1611
专家分:0
注 册:2006-4-3
收藏
得分:0 
恍然大悟中。。。。了解了。。THANK

这个社会太复杂。。。
2007-04-30 16:54
风月_无边
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:60
帖 子:2960
专家分:652
注 册:2007-1-19
收藏
得分:0 
把对数字的判断放到最后,不过计算好像还是有点问题!!

我的网站 http://www.
2007-04-30 21:16
风月_无边
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:60
帖 子:2960
专家分:652
注 册:2007-1-19
收藏
得分:0 
对加减乘除的判断改一下!

switch(e.getActionCommand().charAt(0)){

case '+':flag='p';break;
case '-':flag='m';break;
case '*':flag='t';break;
case '/':flag='d';
}

我的网站 http://www.
2007-04-30 21:29
海蓝啸
Rank: 5Rank: 5
来 自:安徽
等 级:贵宾
威 望:17
帖 子:1611
专家分:0
注 册:2006-4-3
收藏
得分:0 
已改过。。。作了些改动。。。但是还有一个问题没有解决。。。就是把除数为0的情况下好像不是按我写的程序流程执行的。。。哪位帮看看。。下面这个是改过的程序
HO7DCcH5.rar (6.31 KB) [求助]怎么一天到晚就异常。。。疯了。。



这个社会太复杂。。。
2007-05-01 14:34
风月_无边
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:60
帖 子:2960
专家分:652
注 册:2007-1-19
收藏
得分:0 
相除的时候,if else后需要加上一个大括号.基本上很完美了

我的网站 http://www.
2007-05-05 21:21
快速回复:[求助]怎么一天到晚就异常。。。疯了。。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027198 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved