📄 calc.java
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.lang.*;
public class Calc extends JFrame implements ActionListener {
JPanel keypad = new JPanel(new GridLayout(4,4,2,2));
Font font = new Font("SansSerif", Font.BOLD, 32);
JButton keys[][];
JTextField display = new JTextField("0");
StringBuffer calc;
double x,y;
int op;
final int PLUS = 1;
final int MINUS = 2;
final int TIMES = 3;
final int DIVIDE = 4;
public Calc() {
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
setTitle("The PRG Calculator");
int i, j;
// create the keys
keys = new JButton[4][4];
keys[0][0] = new JButton("7");
keys[0][1] = new JButton("8");
keys[0][2] = new JButton("9");
keys[0][3] = new JButton("+");
keys[1][0] = new JButton("4");
keys[1][1] = new JButton("5");
keys[1][2] = new JButton("6");
keys[1][3] = new JButton("-");
keys[2][0] = new JButton("1");
keys[2][1] = new JButton("2");
keys[2][2] = new JButton("3");
keys[2][3] = new JButton("x");
keys[3][0] = new JButton("0");
keys[3][1] = new JButton(".");
keys[3][2] = new JButton("=");
keys[3][3] = new JButton("/");
for(i = 0; i < 4; i++) {
for(j = 0; j < 4; j++) {
keys[i][j].setFont(font);
keys[i][j].addActionListener(this);
keypad.add(keys[i][j]);
}
}
getContentPane().setLayout(new BorderLayout());
this.getContentPane().add(keypad, BorderLayout.CENTER);
display.setHorizontalAlignment(JTextField.RIGHT);
display.setFont(font);
display.setEditable(false);
display.setForeground(Color.green);
display.setBackground(Color.black);
this.getContentPane().add(display, BorderLayout.NORTH);
setSize(400,400);
setVisible(true);
calc = new StringBuffer();
}
public void actionPerformed(java.awt.event.ActionEvent e) { try { if(e.getSource()==keys[0][3]) { x=Double.parseDouble(display.getText()); calc.setLength(0); op=1; } else if (e.getSource()==keys[1][3]) { x=Double.parseDouble(display.getText()); calc.setLength(0); op=2; } else if(e.getSource()==keys[2][3]) { x=Double.parseDouble(display.getText()); calc.setLength(0); op=3; } else if(e.getSource()==keys[3][3]) { x=Double.parseDouble(display.getText()); calc.setLength(0); op=4; } else if(e.getSource()==keys[3][2]) { calc.setLength(0); switch(op) { case 1: display.setText(""+(x+y)); op=0;
break; case 2: display.setText(""+(x-y)); op=0;
break; case 3: display.setText(""+(x*y)); op=0;
break; case 4: if (y==0) {
display.setText("overflow");
} else {
display.setText(""+(x/y)); }
op=0;
break; } } else if(e.getSource()==keys[3][1]) { if(display.getText().indexOf('.')!=-1) { } else if(display.getText().equals("0")) { calc.setLength(0); display.setText((calc.append("0"+e.getActionCommand())).toString()); } else if(display.getText().equals("")) { } else { display.setText(calc.append(e.getActionCommand()).toString()); } } else { if(e.getSource()==keys[3][0]) { if(display.getText().equals("0")) { } else { display.setText(calc.append(e.getActionCommand()).toString()); y=Double.parseDouble(display.getText()); } } else { display.setText(calc.append(e.getActionCommand()).toString()); y=Double.parseDouble(display.getText()); } } } catch (NumberFormatException e2) { display.setText("Wrong Number Format"); }
}
public static void main(String args[]) {
Calc sums = new Calc();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -