📄 calculatorpanel.java
字号:
package packagecalculator;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class CalculatorPanel extends JPanel
implements ActionListener{
private JTextField display;
private double arg = 0;
private String operator = "=";
private boolean start = true;
public CalculatorPanel(){
setLayout(new BorderLayout());
display = new JTextField("0");
display.setEditable(false);
add(display,"North");
JPanel p = new JPanel();
p.setLayout(new GridLayout(4,4));
String buttons = "789/456*123-0.=+";
for(int i = 0;i < buttons.length(); i++)
addButton(p,buttons.substring(i,i + 1));
add(p,"Center");
}
private void addButton(Container c, String s){
JButton b = new JButton(s);
c.add(b);
b.addActionListener(this);
}
public void actionPerformed(ActionEvent e){
String s = e.getActionCommand();
if ('0' <= s.charAt(0) && s.charAt(0) <= '9' || s.equals(".")){//输出0-9和小数点
if(start)//输出0-9
display.setText(s);
else //输出小数点
display.setText(display.getText() + s);
start = false;
}
else{//输入加减或负号时的操作
if(start){
if(s.equals("-")){//输入负号时的操作
display.setText(s);
start = false;
}
else operator = s;
}
else{//输入加减符号时的操作
double x = Double.parseDouble(display.getText());
calculate(x);
operator = s;
start = true;
}
}
}
public void calculate(double n){//计算,arg为第一位操作数,n为第二为操作数,开始计算时的第一位操作数arg是0
if(operator.equals("+")) arg +=n;
else if (operator.equals("-")) arg -= n;
else if (operator.equals("*")) arg *= n;
else if (operator.equals("/")) arg /= n;
else if (operator.equals("=")) arg = n;
display.setText("" + arg);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -