📄 calculator.java
字号:
import javabook.*;
import java.awt.*;
import java.awt.event.*;
class Caculator extends Frame implements ActionListener
{
private static final int LEFT=0;
private static final int RIGHT=1;
private StringBuffer leftOpr,rightOpr;
private String opr,str;
private Button[] button;
private TextField inLine;
private int status;
public Caculator()
{
super("CACULATOR");
setSize(320,300);
setResizable(false);
setLayout(null);
setLocation(100,100);
initGUI();
status=LEFT;
opr="=";
inLine.setText("0");
leftOpr=new StringBuffer("");
rightOpr=new StringBuffer("0");
}
private void initGUI()
{
inLine=new TextField();
inLine.setBounds(40,40,130,20);
add(inLine);
button=new Button[18];
button[0]=new Button("7");
button[1]=new Button("8");
button[2]=new Button("9");
button[3]=new Button("4");
button[4]=new Button("5");
button[5]=new Button("6");
button[6]=new Button("1");
button[7]=new Button("2");
button[8]=new Button("3");
button[9]=new Button("0");
button[10]=new Button(".");
button[11]=new Button("=");
button[12]=new Button("*");
button[13]=new Button("/");
button[14]=new Button("-");
button[15]=new Button("CE");
button[16]=new Button("+");
button[17]=new Button("C");
for(int j=0;j<3;j++)
{
button[j].setBounds(40+50*j,90,30,30);
add(button[j]);
}
for(int i=3;i<6;i++)
{
button[i].setBounds(40+50*(i-3),140,30,30);
add(button[i]);
}
for(int i=6;i<9;i++)
{
button[i].setBounds(40+50*(i-6),190,30,30);
add(button[i]);
}
for(int i=9;i<12;i++)
{
button[i].setBounds(40+50*(i-9),240,30,30);
add(button[i]);
}
button[12].setBounds(220,90,30,30);
add(button[12]);
button[13].setBounds(270,90,30,30);
add(button[13]);
button[14].setBounds(220,140,30,30);
add(button[14]);
button[15].setBounds(270,140,30,30);
add(button[15]);
button[16].setBounds(220,190,30,80);
add(button[16]);
button[17].setBounds(270,190,30,30);
add(button[17]);
for(int i=0;i<18;i++) button[i].addActionListener(this);
}
public void actionPerformed(ActionEvent event)
{
str=event.getActionCommand();
if(str.equals("."))
{
{if(status==LEFT) getLeftOpr();
else if(status==RIGHT) getRightOpr();
}
}
for(int i=0;i<=9;i++)
{
if(Convert.toString(i).equals(str))
{if(status==LEFT) getLeftOpr();
else if(status==RIGHT) getRightOpr();
}
}
getOprCompu();
}
private void getLeftOpr()
{
leftOpr.append(str);
inLine.setText(leftOpr.toString());
}
private void getRightOpr()
{
rightOpr.append(str);
inLine.setText(rightOpr.toString());
}
private void getOprCompu()
{
if(str.equals("CE"))
{ clear();}
if(str.equals("+"))
{
compute();
opr="+";
status=RIGHT;
}
if(str.equals("-"))
{
compute();
opr="-";
status=RIGHT;
}
if(str.equals("*"))
{
compute();
opr="*";
status=RIGHT;
}
if(str.equals("/"))
{
compute();
opr="/";
status=RIGHT;
}
if(str.equals("="))
{
compute();
opr="=";
}
}
private void clear()
{leftOpr=new StringBuffer("");
rightOpr=new StringBuffer("0");
status=LEFT;
opr="=";
inLine.setText("0");
}
private void compute()
{
double result=Convert.toDouble(leftOpr.toString());
if(opr.equals("+"))
{
result=Convert.toDouble(leftOpr.toString())+Convert.toDouble(rightOpr.toString());
}
if(opr.equals("-"))
{
result=Convert.toDouble(leftOpr.toString())-Convert.toDouble(rightOpr.toString());
}
if(opr.equals("*"))
{
result=Convert.toDouble(leftOpr.toString())*Convert.toDouble(rightOpr.toString());
}
if(opr.equals("/"))
{
result=Convert.toDouble(leftOpr.toString())/Convert.toDouble(rightOpr.toString());
}
leftOpr=new StringBuffer(Convert.toString(result));
inLine.setText(leftOpr.toString());
rightOpr=new StringBuffer("");
}
}
class CaculatorMain
{
public static void main(String[] args)
{
Caculator caculator=new Caculator();
caculator.setVisible(true);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -