📄 qqqq.java
字号:
import java.applet.Applet;
import java.awt.Button;
import java.awt.Color;
import java.awt.Event;
import java.awt.Graphics;
import java.awt.TextField;
public abstract class qqqq extends Applet {
private TextField tfAnswer;//计算器的显示文本框
private Button b0,b1,b2,b3,b4,b5,b6,b7,b8,b9;//数字0~9的按钮
//下面定义小数点、等于号、加、减、清零、乘和除等按钮
private Button bPoint,bEqual,bPlus,bMinus,bClear,bMulti,bDivision;
private String OperatorCurrent,OperatorPre;//OperatorCurrent表示当前的运算符号.OperatorPre表示上一次的运算符号
private String ForeScreen,BackScreen; //ForeScreen表示当前显示的字符。BackScreen表示上一次显示的字符
private boolean isFloat=false;
//以下是类的初始化函数
public void init()
{
//下面将OperatorCurrent、OperatorPre初始化为空字符串
OperatorCurrent=new String("");
OperatorPre=new String("");
//再将ForeScreen、BackScreen初始化为空字符串
ForeScreen=new String("");
BackScreen=new String("");
this.setBackground(Color.BLUE);//设置背景颜色
this.setForeground(Color.red);//设置前景颜色
setLayout(null);
tfAnswer=new TextField();
tfAnswer.setBounds(5,5,100,20);
this.add(tfAnswer); //添加用于显示的文本框
bClear=new Button("C");
bClear.setBounds(5,30,20,20);
bClear.setBackground(Color.GREEN);
this.add(bClear); //添加‘C’按键
bDivision=new Button("/");
bDivision.setBounds(30,30,20,20);
bDivision.setBackground(Color.pink);
this.add(bDivision);//添加'/'按键
bMulti=new Button("*");
bMulti.setBounds(55,30,20,20);
bDivision.setBackground(Color.pink);
this.add(bMulti);
bMinus=new Button("-");
bMinus.setBounds(80,30,20,20);
bDivision.setBackground(Color.pink);
this.add(bMinus);
bPlus=new Button("+");
bPlus.setBounds(80,55,20,45);
bDivision.setBackground(Color.pink);
this.add(bPlus);
b0=new Button("0");
b0.setBounds(5,130,45,20);
this.add(b0);
bPoint=new Button(".");
bPoint.setBounds(55,130,20,20);
this.add(bPoint);
bEqual=new Button("=");
bEqual.setBounds(80,105,20,45);
this.add(bEqual);
b1=new Button("1");
b1.setBounds(5,105,20,20);
this.add(b1);
b2=new Button("2");
b2.setBounds(30,105,20,20);
this.add(b2);
b3=new Button("3");
b3.setBounds(55,105,20,20);
this.add(b3);
b4=new Button("4");
b4.setBounds(5,80,20,20);
this.add(b4);
b5=new Button("5");
b5.setBounds(30,80,20,20);
this.add(b5);
b6=new Button("6");
b6.setBounds(55,80,20,20);
this.add(b6);
b7=new Button("7");
b7.setBounds(5,55,20,20);
this.add(b7);
b8=new Button("8");
b8.setBounds(30,55,20,20);
this.add(b8);
b9=new Button("9");
b9.setBounds(55,55,20,20);
this.add(b9);
}
/**
* @param blue
*/
//下面添加按键点击事件的处理函数
public boolean action(Event e,Object o)
{
String s=new String("");
if(e.target instanceof Button);
{
if((e.target==b0)||(e.target==b1)||(e.target==b2)||
(e.target==b3)||(e.target==b4)||(e.target==b5)||
(e.target==b6)||(e.target==b7)||(e.target==b8)||
(e.target==b9)||(e.target==bPoint))
{
if(e.target!=bPoint)
{
s=(String)o;
System.out.print(s);
doForeScreen(s); //在显示文本框显示相应的数字
}
if((e.target==bPoint)&&(!isFloat))
{
isFloat=true;
s=(String)o;
if(ForeScreen.equals(""))
{
ForeScreen+="0.";
repaint();
}
else
{
System.out.print(s);
doForeScreen(s);
}
}
}
if(e.target==bClear)
{
doClear(); //清空文本框
}
if((e.target==bMulti)||(e.target==bDivision)||(e.target==bPlus)||(e.target==bMinus))
{
if(ForeScreen!="")
{
OperatorCurrent=((String)o);
doOperator();
System.out.print((String)o);
}
else
{
OperatorPre=((String)o);//将运算符保存为前一次的运算符变量中
}
}
if(e.target==bEqual)
{
doOperator();
}
}
return true;
}
/**
*
*/
public void doOperator() {
double dFore,dBack;//dFore保存当前数值,dBack保存前一次的数值
Double d;
if(OperatorPre.equals(""))
{
BackScreen=ForeScreen;
ForeScreen="";
tfAnswer.setText(BackScreen);
repaint();
}
else
{
dFore=(new Double(ForeScreen)).doubleValue();
dBack=(new Double(BackScreen)).doubleValue();
ForeScreen="";
BackScreen=tfAnswer.getText();
if(OperatorPre.equals("+"))
{
d=new Double((dBack+dFore));
tfAnswer.setText(d.toString());
BackScreen=d.toString();
repaint();
}
if(OperatorPre.equals("-"))
{
d=new Double((dBack-dFore));
tfAnswer.setText(d.toString());
BackScreen=d.toString();
repaint();
}
if(OperatorPre.equals("*"))
{
d=new Double((dBack*dFore));
tfAnswer.setText(d.toString());
BackScreen=d.toString();
repaint();
}
if(OperatorPre.equals("/"))
{
d=new Double((dBack/dFore));
tfAnswer.setText(d.toString());
BackScreen=d.toString();
repaint();
}
}
OperatorPre=OperatorCurrent;
repaint();
}
public void repaint(Graphics g)
{
}
public void doClear() {
OperatorCurrent="";
OperatorPre="";
ForeScreen="";
BackScreen="";
isFloat=false;
tfAnswer.setText(ForeScreen);
repaint();
}
public void doForeScreen(String s) {
ForeScreen+=s;
tfAnswer.setText(ForeScreen);
repaint();
}
public void doBackScreen(String s)
{
BackScreen=ForeScreen;
ForeScreen="";
tfAnswer.setText(ForeScreen);
repaint();
}
/* public static void main(String[] args) {
}*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -