📄 calculator.java
字号:
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class Calculator
extends Applet
implements ActionListener
{ //在这里定义用于GUI组件的私有成员变量和其它的用于applet内部任务的成员变量
private final String[] KEYS =
{
"7", "8", "9", "/",
"4", "5", "6", "*",
"1", "2", "3", "-",
".", "0", "=", "+"};
private Button keys[] = new Button[KEYS.length];
private Button reset = new Button(" CE ");
private TextField display = new TextField("0");
private boolean firstDigit = true;
private double number = 0.0;
private String operator = "=";
private void setup()
{
Panel calcKeys = new Panel();
calcKeys.setLayout(new GridLayout(4, 4));
for (int i = 0; i < KEYS.length; i++)
{
keys[i] = new Button(KEYS[i]);
calcKeys.add(keys[i]);
}
Panel top = new Panel();
top.setLayout(new BorderLayout());
top.add("Center", display);
top.add("East", reset);
setLayout(new BorderLayout());
add("North", top);
add("Center", calcKeys);
}
public void init()
{
setup();
for (int i = 0; i < KEYS.length; i++)
{
keys[i].addActionListener(this);
}
reset.addActionListener(this);
display.setEditable(false);
}
//添加需要的动作处理方法
public void actionPerformed(ActionEvent e)
{
Object target = e.getSource();
String label = e.getActionCommand();
if (target == reset)
{
handleReset();
}
else if ("0123456789.".indexOf(label) >= 0)
{
handleNumber(label);
}
else
{
handleOperator(label);
}
}
private void handleNumber(String key)
{
if (firstDigit)
{
display.setText(key);
}
else if ( (key.equals(".")) && (display.getText().indexOf(".") < 0))
{
display.setText(display.getText() + ".");
}
else if (!key.equals("."))
{
display.setText(display.getText() + key);
}
firstDigit = false;
}
private void handleOperator(String key)
{
if (operator.equals("+"))
{
number += getNumberFromDisplay();
}
else if (operator.equals("-"))
{
number -= getNumberFromDisplay();
}
else if (operator.equals("*"))
{
number *= getNumberFromDisplay();
}
else if (operator.equals("/"))
{
number /= getNumberFromDisplay();
}
else if (operator.equals("="))
{
number = getNumberFromDisplay();
}
display.setText(String.valueOf(number));
operator = key;
firstDigit = true;
}
private double getNumberFromDisplay()
{
return Double.valueOf(display.getText()).doubleValue();
}
private void handleReset()
{
display.setText("0");
firstDigit = true;
operator = "=";
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -