| 适合初学者学习的简单计算器代码
////////////////////////////////////////////////////////////////////////////////////////////////////// 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); } }
///////////////////////////////////////////////////////////////////////////////////////////////
|