小计算器/适合初学者学习的简单计算器代码
出自Cn.18dao.net
< 小计算器
| 您当前所在的位置:首页 > 财务类 > 小计算器 > 适合初学者学习的简单计算器代码 |
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////
import java.awt.*;
import java.awt.event.*;
import java.lang.*;
import javax.swing.*;
/**
* <p>Title: calculator </p>
* <p>Description: 简单计算器制作</p>
* <p>Copyright: Copyright (c) 2005</p>
* <p>Company: </p>
* * @version 1.0
*/
public class calculator extends JFrame implements ActionListener
{
//////////////////////////////////////////////
//设定缺省初始值
//
//
//
//////////////////////////////////////////////
private double result=0,data1=0,radixPointDepth=1;
private boolean radixPointIndicate=false,resultIndicate=false;
private char prec='+';
//////////////////////////////////////////////
//定义组件
//
//
//////////////////////////////////////////////
JButton addButton =new JButton("+");
JButton deductButton =new JButton("-");
JButton multiplicationButton =new JButton("*");
JButton divisionButton =new JButton("/");
JButton pointButton =new JButton(".");
JButton equalButton =new JButton("=");
JTextField viewText =new JTextField("0",30);
//定义数字?
JButton[] numButton =new JButton[10];
static String code;
void setnumButton()
{
for(int i=0;i<10;i++)
{
// numButton[i] =new JButton(new Integer(i).toString());
numButton[i] =new JButton(String.valueOf(i));
}
}
//////////////////////////////////////////////
//定义构造方法
//
//
//////////////////////////////////////////////
public calculator(String title)
{
super(title);
setSize(210,170);
this.setResizable(false);
setCalculator();
setActionListener();
}
/*定义setcalculator方法用于添加组件*/
void setCalculator()
{
setnumButton();
Container c=getContentPane();
JPanel mainPanel=new JPanel();
mainPanel.setLayout(new GridLayout(4,4,10,10));
mainPanel.setBackground(Color.yellow);
mainPanel.add(numButton[7]);
mainPanel.add(numButton[8]);
mainPanel.add(numButton[9]);
mainPanel.add(divisionButton);
mainPanel.add(numButton[4]);
mainPanel.add(numButton[5]);
mainPanel.add(numButton[6]);
mainPanel.add(multiplicationButton);
mainPanel.add(numButton[1]);
mainPanel.add(numButton[2]);
mainPanel.add(numButton[3]);
mainPanel.add(deductButton);
mainPanel.add(numButton[0]);
mainPanel.add(pointButton);
mainPanel.add(equalButton);
mainPanel.add(addButton);
viewText.setHorizontalAlignment(JTextField.RIGHT);
viewText.setEditable(false);
viewText.setBackground(Color.cyan);
c.add(viewText,BorderLayout.NORTH);
c.add(mainPanel,BorderLayout.CENTER);
}
//////////////////////////////////////////////
//定义setActionListener方法
//功能:事件源绑定
//覆盖actionPerformed方法
//
//////////////////////////////////////////////
void setActionListener()
{
for(int i=0;i<10;i++)
{
numButton[i].addActionListener(this);
}
addButton.addActionListener(this);
deductButton.addActionListener(this);
multiplicationButton.addActionListener(this);
divisionButton.addActionListener(this);
pointButton.addActionListener(this);
equalButton.addActionListener(this);
}
//覆盖actionPerformed方法
public void actionPerformed(ActionEvent e){
String s;
s=e.getActionCommand();
switch(s.charAt(0)){
case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':
if(resultIndicate){
result=0;
data1=0;
prec='+';
}
Integer Int1=new Integer(s);
if(radixPointIndicate){
radixPointDepth=radixPointDepth/10;
data1=data1+(Int1.intValue())*radixPointDepth;
}
else{
data1=data1*10+(Int1.intValue());
}
Double displayNumber=new Double(data1);
viewText.setText(displayNumber.toString());
resultIndicate=false;
break;
case '+': case '-':case '*':case '/':case '=':
if(s.charAt(0)!='='&&resultIndicate){
prec=s.charAt(0);
resultIndicate=false;
}
else{
switch(prec){
case '+':
result=result+data1;
break;
case '-':
result=result-data1;
break;
case '*':
result=result*data1;
break;
case '/':
result=result/data1;
break;
}
}
radixPointIndicate=false;
radixPointDepth=1;
displayNumber=new Double(result);
viewText.setText(displayNumber.toString());
if(s.charAt(0)!='='){
data1=0;
prec=s.charAt(0);
}
else{
resultIndicate=true;
}
break;
case '.':
radixPointIndicate=true;
break;
}
}
//////////////////////////////////////////////
//主函数
//功能:实例化 显示MyCalculator类的对象
//
//
//
//////////////////////////////////////////////
public static void main(String[] args)
{
calculator MyCalculator=new calculator("简单计算器");
MyCalculator.show();
MyCalculator.setLocation(400,300);
}
}
|
相关栏目: | |
|
相关搜索: |
| 关于“小计算器/适合初学者学习的简单计算器代码”的留言: |
|
目前暂无留言 |