小計算器/適合初學者學習的簡單計算器代碼
import java.awt.*;
import java.awt.event.*;
import java.lang.*;
import javax.swing.*;
/**
-
Title: calculator
-
Description: 簡單計算器製作
-
Copyright: Copyright (c) 2005
-
Company:
- * @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);
}
}