// NewMiniCalculator.javaimport java.awt.*;
import java.applet.AudioClip;public class csdn10 extends java.applet.Applet {
// 1 = '+', 2 = '-', 3 = '*', 4 = '/', 5 = '=', 0 = 其他
int Operation, LastButtonType;
//计算机的数字资料存储变量
long OnScreen = 0, OutOfScreen = 0;
// 计算机的label参考值
Label lblDisplay;
AudioClip beep; public void init() {
beep=getAudioClip(getCodeBase(),"audio/beep.au");
GridBagLayout GBL = new GridBagLayout();
GridBagConstraints GBC = new GridBagConstraints(); //使用GridBagLayout作为计算机键盘的外观管理员
setLayout(GBL); //把applet的尺寸改为130*160
resize(130,160); //产生计算机的输出显示
lblDisplay = new Label(String.valueOf(OnScreen), Label.RIGHT);
//设置lblDisplay的外观限制条件
GBC.fill = GridBagConstraints.BOTH;
GBC.weightx = 1.0;
GBC.weighty = 1.0;
GBC.gridwidth = GridBagConstraints.REMAINDER;
GBC.gridheight = 1;
GBC.ipadx = 5;
GBC.ipady = 5;
GBL.setConstraints(lblDisplay, GBC);
//把输出用的Label对象加入applet中
add(lblDisplay); //产生计算机键盘
CalculatorKeyBoard CKB = new CalculatorKeyBoard();
//设置计算机键盘的外观限制条件
GBC.weighty = 4.0;
GBC.gridheight = 4;
GBC.ipadx = 1;
GBC.ipady = 1;
GBL.setConstraints(CKB, GBC);
//把计算机键盘加入applet中
add(CKB); //重置计算机的状态
resetCalculator();
} //使用自己设置的间距
public Insets insets() {
return new Insets(10, 10, 10, 10);
} public boolean action(Event evt, Object what) {
//只处理Button产生的action,其他的不管
if (evt.target instanceof Button) {
//在Button的action中,what是该Button上的文字
String targetLabel = (String)what;
beep.play(); if (targetLabel.equals("C"))
resetCalculator();
else if (targetLabel.equals("+"))
setOperation(1);
else if (targetLabel.equals("-"))
setOperation(2);
else if (targetLabel.equals("*"))
setOperation(3);
else if (targetLabel.equals("/"))
setOperation(4);
else if (targetLabel.equals("="))
doOperation();
else {
if (LastButtonType == 0)
OnScreen = OnScreen * 10L
+ Long.valueOf(targetLabel).longValue();
else
OnScreen = Long.valueOf(targetLabel).longValue();
LastButtonType = 0;
}
//设置新的显示字符串
lblDisplay.setText(String.valueOf(OnScreen));
return true;
}
else
return false;
} //重置计算机的状态
void resetCalculator() {
OnScreen = 0;
OutOfScreen = 0;
Operation = 0;
LastButtonType = 0;
}
//设置运算种类
void setOperation(int Op) {
OutOfScreen = OnScreen;
Operation = Op;
LastButtonType = Op;
} //执行运算
void doOperation() {
if (LastButtonType != 5) {
long longTemp; switch (Operation) {
case 1:
longTemp = OutOfScreen + OnScreen;
break;
case 2:
longTemp = OutOfScreen - OnScreen;
break;
case 3:
longTemp = OutOfScreen * OnScreen;
break;
case 4:
longTemp = OutOfScreen / OnScreen;
break;
default:
longTemp = 0;
break;
}
OutOfScreen = OnScreen;
OnScreen = longTemp;
}
else {
switch (Operation) {
case 1:
OnScreen += OutOfScreen;
break;
case 2:
OnScreen -= OutOfScreen;
break;
case 3:
OnScreen *= OutOfScreen;
break;
case 4:
OnScreen /= OutOfScreen;
break;
default:
OnScreen = 0;
break;
}
}
LastButtonType = 5;
}
}class CalculatorKeyBoard extends Panel {
//计算机按钮的加入顺序
int AddOrder[] = { 8, 9, 10, 0, 5, 6, 7, 11,
2, 3, 4, 12, 1, 15, 14, 13 };
//计算机的Button参考值数组
Button btnKeyBoard[] = new Button[16]; CalculatorKeyBoard() {
int i;
//使用GridLayout来作为计算机键盘的外观管理员
setLayout(new GridLayout(4, 4, 5, 5)); //产生计算机的按钮
//产生'C'(清除键),先产生按钮对象后,再设置按钮显示字符串
btnKeyBoard[0] = new Button();
btnKeyBoard[0].setLabel("C");
//产生0到9的按钮
for (i = 1;i < 11;i ++)
btnKeyBoard[i] = new Button(String.valueOf(i-1));
// 再产生'+', '-', '*', '/', '='
btnKeyBoard[11] = new Button("+");
btnKeyBoard[12] = new Button("-");
btnKeyBoard[13] = new Button("*");
btnKeyBoard[14] = new Button("/");
btnKeyBoard[15] = new Button("="); //把刚刚产生的计算机按钮加入applet中
for (i = 0;i < 16;i ++)
add(btnKeyBoard[AddOrder[i]]);
}
import java.applet.AudioClip;public class csdn10 extends java.applet.Applet {
// 1 = '+', 2 = '-', 3 = '*', 4 = '/', 5 = '=', 0 = 其他
int Operation, LastButtonType;
//计算机的数字资料存储变量
long OnScreen = 0, OutOfScreen = 0;
// 计算机的label参考值
Label lblDisplay;
AudioClip beep; public void init() {
beep=getAudioClip(getCodeBase(),"audio/beep.au");
GridBagLayout GBL = new GridBagLayout();
GridBagConstraints GBC = new GridBagConstraints(); //使用GridBagLayout作为计算机键盘的外观管理员
setLayout(GBL); //把applet的尺寸改为130*160
resize(130,160); //产生计算机的输出显示
lblDisplay = new Label(String.valueOf(OnScreen), Label.RIGHT);
//设置lblDisplay的外观限制条件
GBC.fill = GridBagConstraints.BOTH;
GBC.weightx = 1.0;
GBC.weighty = 1.0;
GBC.gridwidth = GridBagConstraints.REMAINDER;
GBC.gridheight = 1;
GBC.ipadx = 5;
GBC.ipady = 5;
GBL.setConstraints(lblDisplay, GBC);
//把输出用的Label对象加入applet中
add(lblDisplay); //产生计算机键盘
CalculatorKeyBoard CKB = new CalculatorKeyBoard();
//设置计算机键盘的外观限制条件
GBC.weighty = 4.0;
GBC.gridheight = 4;
GBC.ipadx = 1;
GBC.ipady = 1;
GBL.setConstraints(CKB, GBC);
//把计算机键盘加入applet中
add(CKB); //重置计算机的状态
resetCalculator();
} //使用自己设置的间距
public Insets insets() {
return new Insets(10, 10, 10, 10);
} public boolean action(Event evt, Object what) {
//只处理Button产生的action,其他的不管
if (evt.target instanceof Button) {
//在Button的action中,what是该Button上的文字
String targetLabel = (String)what;
beep.play(); if (targetLabel.equals("C"))
resetCalculator();
else if (targetLabel.equals("+"))
setOperation(1);
else if (targetLabel.equals("-"))
setOperation(2);
else if (targetLabel.equals("*"))
setOperation(3);
else if (targetLabel.equals("/"))
setOperation(4);
else if (targetLabel.equals("="))
doOperation();
else {
if (LastButtonType == 0)
OnScreen = OnScreen * 10L
+ Long.valueOf(targetLabel).longValue();
else
OnScreen = Long.valueOf(targetLabel).longValue();
LastButtonType = 0;
}
//设置新的显示字符串
lblDisplay.setText(String.valueOf(OnScreen));
return true;
}
else
return false;
} //重置计算机的状态
void resetCalculator() {
OnScreen = 0;
OutOfScreen = 0;
Operation = 0;
LastButtonType = 0;
}
//设置运算种类
void setOperation(int Op) {
OutOfScreen = OnScreen;
Operation = Op;
LastButtonType = Op;
} //执行运算
void doOperation() {
if (LastButtonType != 5) {
long longTemp; switch (Operation) {
case 1:
longTemp = OutOfScreen + OnScreen;
break;
case 2:
longTemp = OutOfScreen - OnScreen;
break;
case 3:
longTemp = OutOfScreen * OnScreen;
break;
case 4:
longTemp = OutOfScreen / OnScreen;
break;
default:
longTemp = 0;
break;
}
OutOfScreen = OnScreen;
OnScreen = longTemp;
}
else {
switch (Operation) {
case 1:
OnScreen += OutOfScreen;
break;
case 2:
OnScreen -= OutOfScreen;
break;
case 3:
OnScreen *= OutOfScreen;
break;
case 4:
OnScreen /= OutOfScreen;
break;
default:
OnScreen = 0;
break;
}
}
LastButtonType = 5;
}
}class CalculatorKeyBoard extends Panel {
//计算机按钮的加入顺序
int AddOrder[] = { 8, 9, 10, 0, 5, 6, 7, 11,
2, 3, 4, 12, 1, 15, 14, 13 };
//计算机的Button参考值数组
Button btnKeyBoard[] = new Button[16]; CalculatorKeyBoard() {
int i;
//使用GridLayout来作为计算机键盘的外观管理员
setLayout(new GridLayout(4, 4, 5, 5)); //产生计算机的按钮
//产生'C'(清除键),先产生按钮对象后,再设置按钮显示字符串
btnKeyBoard[0] = new Button();
btnKeyBoard[0].setLabel("C");
//产生0到9的按钮
for (i = 1;i < 11;i ++)
btnKeyBoard[i] = new Button(String.valueOf(i-1));
// 再产生'+', '-', '*', '/', '='
btnKeyBoard[11] = new Button("+");
btnKeyBoard[12] = new Button("-");
btnKeyBoard[13] = new Button("*");
btnKeyBoard[14] = new Button("/");
btnKeyBoard[15] = new Button("="); //把刚刚产生的计算机按钮加入applet中
for (i = 0;i < 16;i ++)
add(btnKeyBoard[AddOrder[i]]);
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货