| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 997 人关注过本帖
标题:awt计算器程序,欢迎各位批评指正
只看楼主 加入收藏
cumtkl
Rank: 1
等 级:新手上路
帖 子:63
专家分:0
注 册:2006-5-10
收藏
 问题点数:0 回复次数:9 
awt计算器程序,欢迎各位批评指正

初学乍练,请各位多多指教.指出不足.


import java.awt.*;
import java.awt.event.*;
class ae
{
public static void main(String args[])
{

frame fr=new frame();

}


}

class frame extends Frame implements ActionListener {
Button button[]=new Button[18];
TextField tx=new TextField(20);
int m=0;String str1="";String str2="",strsum;double d1=0,d2,dsum; //str1为第一个操作字符串,d1是str1对应的数,
//str2为第二个,d2是str2对应的数,dsum为结果
//m为判断是何种运算
String buttontext[]={"0","1","2","3","4","5","6","7","8","9","+","-","*","/","%","=","C","."};
public frame()
{
super("计算器");
this.setLayout(new FlowLayout(FlowLayout.CENTER,10,10));
this.add(tx);
boolean b=false;
tx.setEditable(b);
for(int i=0;i<=17;i++)
{
button[i]=new Button(buttontext[i]);
this.add(button[i]);
button[i].addActionListener(this);
}

this.addWindowListener(new WindowAdapter()//窗口事件监听器
{
public void windowClosing(WindowEvent e)
{System.exit(0);}
});

this.pack();setSize(193,200);this.show();
}

public void actionPerformed(ActionEvent e)
{
if(e.getSource() == button[0]){
if(!tx.getText().equals("0")&&m==0){str1=str1+"0";tx.setText(str1);}
else if(!tx.getText().equals("0")&&(m!=0)){str2=str2+"0";tx.setText(str2);}}
else if(e.getSource() == button[1]){
if(!tx.getText().equals("0")&&m==0){str1=str1+"1";tx.setText(str1);}
else if(!tx.getText().equals("0")&&m!=0){str2=str2+"1";tx.setText(str2);}}
else if(e.getSource() == button[2]){
if(!tx.getText().equals("0")&&m==0){str1=str1+"2";tx.setText(str1);}
else if(!tx.getText().equals("0")&&m!=0){str2=str2+"2";tx.setText(str2);}}
else if(e.getSource() == button[3]){
if(!tx.getText().equals("0")&&m==0){str1=str1+"3";tx.setText(str1);}
else if(!tx.getText().equals("0")&&m!=0){str2=str2+"3";tx.setText(str2);}}
else if(e.getSource() == button[4]){
if(!tx.getText().equals("0")&&m==0){str1=str1+"4";tx.setText(str1);}
else if(!tx.getText().equals("0")&&m!=0){str2=str2+"4";tx.setText(str2);}}
else if(e.getSource() == button[5]){
if(!tx.getText().equals("0")&&m==0){str1=str1+"5";tx.setText(str1);}
else if(!tx.getText().equals("0")&&m!=0){str2=str2+"5";tx.setText(str2);}}
else if(e.getSource() == button[6]){
if(!tx.getText().equals("0")&&m==0){str1=str1+"6";tx.setText(str1);}
else if(!tx.getText().equals("0")&&m!=0){str2=str2+"6";tx.setText(str2);}}
else if(e.getSource() == button[7]){
if(!tx.getText().equals("0")&&m==0){str1=str1+"7";tx.setText(str1);}
else if(!tx.getText().equals("0")&&m!=0){str2=str2+"7";tx.setText(str2);}}
else if(e.getSource() == button[8]){
if(!tx.getText().equals("0")&&m==0){str1=str1+"8";tx.setText(str1);}
else if(!tx.getText().equals("0")&&m!=0){str2=str2+"8";tx.setText(str2);}}
else if(e.getSource() == button[9]){
if(!tx.getText().equals("0")&&m==0){str1=str1+"9";tx.setText(str1);}
else if(!tx.getText().equals("0")&&m!=0){str2=str2+"9";tx.setText(str2);}}
else if(e.getSource() == button[17]&&(!tx.getText().equals(""))){if(tx.getText().indexOf(".")==-1) //小数点
{if(m==0){str1=str1+".";tx.setText(str1);}
else if(m!=0){str2=str2+".";tx.setText(str2);}}}
else if((e.getSource() == button[10])&&(!tx.getText().equals(""))&&(!tx.getText().equals("0"))){str1=tx.getText

();d1=Double.parseDouble(str1);m=1;}//加
else if(e.getSource() == button[11]){
if(!tx.getText().equals("")){str1=tx.getText();d1=Double.parseDouble(str1);m=2;} //减,可做负号用.
else {str1=str1+"-";tx.setText(str1);}}
else if(e.getSource() == button[12]&&(!tx.getText().equals(""))){str1=tx.getText();d1=Double.parseDouble(str1);m=3;} //乘
else if(e.getSource() == button[13]&&(!tx.getText().equals(""))){str1=tx.getText();d1=Double.parseDouble(str1);m=4;} //除
else if(e.getSource() == button[14]&&(!tx.getText().equals(""))){str1=tx.getText();d1=Double.parseDouble(str1);m=5;}//求模
else if(e.getSource() == button[15]&&(!tx.getText().equals(""))){str2=tx.getText();d2=Double.parseDouble(str2); //运算
switch(m){case 1:dsum=d1+d2;tx.setText(Double.toString(dsum));break;
case 2:dsum=d1-d2;tx.setText(Double.toString(dsum));break;
case 3:dsum=d1*d2;tx.setText(Double.toString(dsum));break;
case 4:dsum=d1/d2;tx.setText(Double.toString(dsum));break;
case 5:dsum=d1%d2;tx.setText(Double.toString(dsum));break;
}
str1="";str2="";m=0;
}
else if((e.getSource() == button[16])){tx.setText("");str1="";str2="";} //清零


}


}

[此贴子已经被作者于2006-6-5 15:42:48编辑过]

搜索更多相关主题的帖子: awt 计算器 批评 frame 
2006-06-05 12:43
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 

虽然 简单了点,但还不错,实现了功能
支持一下


可惜不是你,陪我到最后
2006-06-05 14:30
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 

虽然 简单了点,但还不错,实现了功能
支持一下


可惜不是你,陪我到最后
2006-06-05 14:30
闯城狼
Rank: 1
等 级:新手上路
帖 子:126
专家分:0
注 册:2006-3-27
收藏
得分:0 
这个程序没有public类怎么也能运行呢?我搞不明白?
2006-06-05 21:48
wtyl0088
Rank: 1
等 级:新手上路
帖 子:109
专家分:0
注 册:2006-3-24
收藏
得分:0 
可以阿 程序运行的是有main函数的那个类

2006-06-05 23:14
aiyuheng
Rank: 1
等 级:新手上路
威 望:1
帖 子:656
专家分:0
注 册:2006-1-12
收藏
得分:0 
那么多的if  else if是不是可以简化点写呢??写成个私有类试试

when i want to ask anyone,i will ask myself first.
2006-06-06 10:59
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 

if
else if
可以改为switch结构,将会好看很多


可惜不是你,陪我到最后
2006-06-06 11:01
cumtkl
Rank: 1
等 级:新手上路
帖 子:63
专家分:0
注 册:2006-5-10
收藏
得分:0 

嗯.谢谢各位的回复..
把零到九改成了这样:

for(int j=0;j<=9;j++){
if(e.getSource() == button[j])
{
if(!tx.getText().equals("0")&&m==0){str1=str1+Integer.toString(j);tx.setText(str1);}
else if(!tx.getText().equals("0")&&(m!=0)){str2=str2+Integer.toString(j);tx.setText(str2);}
}
}

2006-06-06 11:23
ufobject
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2006-2-23
收藏
得分:0 
有点问题,哈哈,,努力
2006-06-06 23:58
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
这样用循环实现了就比一个一个比好看多了,

可惜不是你,陪我到最后
2006-06-07 10:13
快速回复:awt计算器程序,欢迎各位批评指正
数据加载中...
 
   



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

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