import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class fram extends JFrame implements ActionListener {
String ss = "";
String s1 = "";
String s2 = "";
String s3 = "";
String ss1 = "";
String ss2 = "";
String sss="";
char al;
char aa;
double d;
int b;
JButton jb1[] = { new JButton("0"), new JButton("+/-"), new JButton("."),
new JButton("1"), new JButton("2"), new JButton("3"),
new JButton("4"), new JButton("5"), new JButton("6"),
new JButton("7"), new JButton("8"), new JButton("9"), };
JButton jb2[] = { new JButton("mc"), new JButton("mr"), new JButton("ms"),
new JButton("m+"), };
JButton jb3[] = { new JButton("Backspace"), new JButton("CE"),
new JButton("C"), };
JButton jb4[] = { new JButton("/"), new JButton("*"), new JButton("-"),
new JButton("+"), };
JButton jb5[] = { new JButton("sqrt"), new JButton("%"),
new JButton("x/1"), new JButton("=") };
JTextField jtf = new JTextField("");
JLabel jl = new JLabel();
public fram() {
setTitle("计算机");
setLayout(null);
setBounds(100, 100, 430, 350);
jtf.setBounds(10, 20, 390, 37);
add(jtf);
jtf.setHorizontalAlignment(jtf.RIGHT);
for (int i = 0; i < jb3.length; i++) {
jb3[i].setBounds(75 + i * 112, 65, 100, 37);
jb3[i].addActionListener(this);
add(jb3[i]);
}
for (int i = 0; i < jb2.length; i++) {
jb2[i].setBounds(10, 110 + i * 45, 60, 37);
jb2[i].addActionListener(this);
add(jb2[i]);
}
for (int i = 0; i < 3; i++) {
jb1[i].setBounds(75 + i * 65, 245, 60, 37);
jb1[i].addActionListener(this);
add(jb1[i]);
}
for (int i = 3; i < 6; i++) {
jb1[i].setBounds(-120 + i * 65, 200, 60, 37);
jb1[i].addActionListener(this);
add(jb1[i]);
}
for (int i = 6; i < 9; i++) {
jb1[i].setBounds(-315 + i * 65, 155, 60, 37);
jb1[i].addActionListener(this);
add(jb1[i]);
}
for (int i = 9; i < 12; i++) {
jb1[i].setBounds(-510 + i * 65, 110, 60, 37);
jb1[i].addActionListener(this);
add(jb1[i]);
}
for (int i = 0; i < jb4.length; i++) {
jb4[i].setBounds(275, 110 + i * 45, 60, 37);
jb4[i].addActionListener(this);
add(jb4[i]);
}
for (int i = 0; i < jb5.length; i++) {
jb5[i].setBounds(340, 110 + i * 45, 60, 37);
jb5[i].addActionListener(this);
add(jb5[i]);
}
jl.setBounds(28, 70, 30, 27);
add(jl);
jtf.setColumns(5);
setVisible(true);
setDefaultCloseOperation(3);
}
public static void main(String[] args) {
new fram();
}
public void actionPerformed(ActionEvent e) {
double dd=0;
if (e.getSource() == jb3[1]) {
jtf.setText("0");
ss1 = "";
ss2 = "";
}
if (e.getSource() == jb3[2]) {
jtf.setText("0");
ss1 = "";
ss2 = "";
}
if (e.getSource() == jb3[0]) {
s1 = jtf.getText().toString().trim();
int i1 = s1.length();
int i2 = i1 - 1;
if (i1 == 1) {
jtf.setText("0");
} else {
s2 = s1.substring(0, i2);
jtf.setText(s2);
}
}
if (e.getSource() == jb2[0]) {
ss = "";
jl.setText("");
}
if (e.getSource() == jb2[2]) {
ss = jtf.getText().toString().trim();
jl.setText("M");
}
if (e.getSource() == jb2[1]) {
if (ss.equals("")) {
} else {
jtf.setText(ss);
}
}
if (e.getSource() == jb2[3]) {
if (ss.equals("")) {
} else {
s1 = jtf.getText().toString().trim();
try {
int i5 = Integer.parseInt(s1);
try {
int f1 = Integer.parseInt(ss);
int f2 = f1 + i5;
s3 = f2 + "";
} catch (Exception e2) {
double f = Double.parseDouble(ss);
double ff = f + (double) i5;
s3 = ff + "";
}
} catch (Exception e2) {
double ff1 = Double.parseDouble(s1);
try {
int f1 = Integer.parseInt(ss);
double f2 = (double) f1 + ff1;
s3 = f2 + "";
} catch (Exception e3) {
double ff2 = Double.parseDouble(ss);
double ff = ff1 + ff2;
s3 = ff + "";
}
}
jtf.setText(s3);
}
}
if (e.getSource() == jb1[3]) {
s1 = jtf.getText().toString().trim();
s2 = "1";
if (s1.equals("0") ||b==1) {
jtf.setText(s2);
b=0;
} else {
s3 = s1.concat(s2);
jtf.setText(s3);
}
}
if (e.getSource() == jb1[4]) {
s1 = jtf.getText().toString().trim();
s2 = "2";
if (s1.equals("0") ||b==1) {
jtf.setText(s2);
b=0;
} else {
s3 = s1.concat(s2);
jtf.setText(s3);
}
}
if (e.getSource() == jb1[5]) {
s1 = jtf.getText().toString().trim();
s2 = "3";
if (s1.equals("0") ||b==1) {
jtf.setText(s2);
b=0;
} else {
s3 = s1.concat(s2);
jtf.setText(s3);
}
}
if (e.getSource() == jb1[6]) {
s1 = jtf.getText().toString().trim();
s2 = "4";
if (s1.equals("0") ||b==1) {
jtf.setText(s2);
b=0;
} else {
s3 = s1.concat(s2);
jtf.setText(s3);
}
}
if (e.getSource() == jb1[7]) {
s1 = jtf.getText().toString().trim();
s2 = "5";
if (s1.equals("0") ||b==1) {
jtf.setText(s2);
b=0;
} else {
s3 = s1.concat(s2);
jtf.setText(s3);
}
}
if (e.getSource() == jb1[8]) {
s1 = jtf.getText().toString().trim();
s2 = "6";
if (s1.equals("0") || b==1) {
jtf.setText(s2);
b=0;
} else {
s3 = s1.concat(s2);
jtf.setText(s3);
}
}
if (e.getSource() == jb1[9]) {
s1 = jtf.getText().toString().trim();
s2 = "7";
if (s1.equals("0") || b==1) {
jtf.setText(s2);
b=0;
} else {
s3 = s1.concat(s2);
jtf.setText(s3);
}
}
if (e.getSource() == jb1[10]) {
s1 = jtf.getText().toString().trim();
s2 = "8";
if (s1.equals("0") || b==1) {
jtf.setText(s2);
b=0;
} else {
s3 = s1.concat(s2);
jtf.setText(s3);
}
}
if (e.getSource() == jb1[11]) {
s1 = jtf.getText().toString().trim();
s2 = "9";
if (s1.equals("0")||b==1) {
jtf.setText(s2);
b=0;
} else {
s3 = s1.concat(s2);
jtf.setText(s3);
}
}
if (e.getSource() == jb1[0]) {
s1 = jtf.getText().toString().trim();
s2 = "0";
if (s1.equals("0") || b==1) {
jtf.setText(s2);
b=0;
} else {
s3 = s1.concat(s2);
jtf.setText(s3);
}
}
if (e.getSource() == jb1[2]) {
s1 = jtf.getText().toString().trim();
s2 = ".";
int i1;
try {
i1 = Integer.parseInt(s1);
s3 = s1.concat(s2);
jtf.setText(s3);
} catch (Exception e2) {
}
}
if (e.getSource() == jb1[1]) {
s1 = jtf.getText().toString().trim();
int i1;
if(s1.equals("")){
}
else{
try {
i1 = Integer.parseInt(s1);
int i2 = i1 * (-1);
s2 = i2 + "";
} catch (Exception e2) {
double f1 = Double.parseDouble(s1);
double f2 = f1 * (-1);
s2 = f2 + "";
}
jtf.setText(s2);
}
}
if (e.getSource() == jb4[3]) {
int a = 0;
b=1;
aa='+';
if (ss1.equals("")) {
ss1 = jtf.getText().toString().trim();
a = 1;
jtf.setText("");
al = '+';
}
if (a < 1) {
ss2 = jtf.getText().toString().trim();
jtf.setText("");
if(al=='+'){
dd = koxux(Double.parseDouble(ss1), Double
.parseDouble(ss2));
al = '+';
}
if(al=='-'){
dd = ilix(Double.parseDouble(ss1), Double.parseDouble(ss2));
al = '-';
}
if(al=='*'){
dd = kopaytix(Double.parseDouble(ss1), Double.parseDouble(ss2));
al = '*';
}
if(al=='/'){
dd = bolox(Double.parseDouble(ss1), Double.parseDouble(ss2));
al = '/';
}
ss1 =dd+" ";
ss2 = "";
al = '+';
jtf.setText(dd + "");
}
}
if (e.getSource() == jb4[2]) {
b=1;
int a = 0;
aa='-';
if (ss1.equals("")) {
ss1 = jtf.getText().toString().trim();
a = 1;
jtf.setText("");
al = '-';
}
if (a < 1) {
ss2 = jtf.getText().toString().trim();
jtf.setText("");
if(al=='+'){
dd = koxux(Double.parseDouble(ss1), Double
.parseDouble(ss2));
al='+';
}
if(al=='-'){
dd = ilix(Double.parseDouble(ss1), Double.parseDouble(ss2));
al='-';
}
if(al=='*'){
dd = kopaytix(Double.parseDouble(ss1), Double.parseDouble(ss2));
al='*';
}
if(al=='/'){
dd = bolox(Double.parseDouble(ss1), Double.parseDouble(ss2));
al='/';
}
ss1 =dd+" ";
ss2 = "";
al = '-';
jtf.setText(dd + "");
}
}
if (e.getSource() == jb4[1]) {
aa='*';
b=1;
int a = 0;
if (ss1.equals("")) {
ss1 = jtf.getText().toString().trim();
a = 1;
jtf.setText("");
al = '*';
}
if (a < 1) {
ss2=jtf.getText().toString().trim();
jtf.setText("");
if(al=='+'){
dd = koxux(Double.parseDouble(ss1), Double
.parseDouble(ss2));
al='+';
}
if(al=='-'){
dd = ilix(Double.parseDouble(ss1), Double.parseDouble(ss2));
al='-';
}
if(al=='*'){
dd = kopaytix(Double.parseDouble(ss1), Double.parseDouble(ss2));
al='*';
}
if(al=='/'){
dd = bolox(Double.parseDouble(ss1), Double.parseDouble(ss2));
al='/';
}
ss1 =dd+" ";
ss2 = "";
al = '*';
jtf.setText(dd + "");
}
}
if (e.getSource() == jb4[0]) {
b=1;
int a = 0;
aa='/';
if (ss1.equals("")) {
ss1 = jtf.getText().toString().trim();
a = 1;
jtf.setText("");
al = '/';
}
if (a < 1) {
ss2 = jtf.getText().toString().trim();
jtf.setText("");
if(al=='+'){
dd = koxux(Double.parseDouble(ss1), Double
.parseDouble(ss2));
al='+';
}
if(al=='-'){
dd = ilix(Double.parseDouble(ss1), Double.parseDouble(ss2));
al='-';
}
if(al=='*'){
dd = kopaytix(Double.parseDouble(ss1), Double.parseDouble(ss2));
al='*';
}
if(al=='/'){
dd = bolox(Double.parseDouble(ss1), Double.parseDouble(ss2));
al='/';
}
ss1 =dd+" ";
ss2 = "";
al = '/';
jtf.setText(dd + "");
}
}
if (e.getSource() == jb5[3]) {
ss2 = jtf.getText().toString().trim();
if(ss2.equals("")){
}
if(ss1.equals("")){
ss1=ss2;
ss2=sss;
}
switch(aa){
case '+':{
dd = koxux(Double.parseDouble(ss1), Double.parseDouble(ss2));
sss=ss2;
ss1 = "";
ss2 = "";
jtf.setText(dd + "");
break;
}
case '-':
dd = ilix(Double.parseDouble(ss1), Double.parseDouble(ss2));
sss=ss2;
ss1 = "";
ss2 = "";
jtf.setText(dd + "");
break;
case '/':
dd = bolox(Double.parseDouble(ss1), Double.parseDouble(ss2));
sss=ss2;
ss1 = "";
ss2 = "";
jtf.setText(dd + "");
break;
case '*':
dd = kopaytix(Double.parseDouble(ss1), Double.parseDouble(ss2));
sss=ss2;
ss1 = "";
ss2 = "";
jtf.setText(dd + "");
break;
default:
break;
}
}
if(e.getSource()==jb5[0]){
b=1;
ss2=jtf.getText().toString().trim();
double ddd=Double.parseDouble(ss2);
double d=Math.sqrt(ddd);
jtf.setText(d+"");
}
if(e.getSource()==jb5[1]){
b=1;
if(ss1.equals(""))
{
}
else{
if(al=='*'){
ss2=jtf.getText().toString().trim();
double s=Double.parseDouble(ss1)*Double.parseDouble(ss2)*0.01;
jtf.setText(s+"");
}
if(al=='+'){
ss2=jtf.getText().toString().trim();
double s=Double.parseDouble(ss1)+Double.parseDouble(ss1)*Double.parseDouble(ss2)*0.01;
jtf.setText(s+"");
}
}
}
if(e.getSource()==jb5[2]){
b=1;
ss2=jtf.getText().toString().trim();
double ddd=1/Double.parseDouble(ss2);
jtf.setText(ddd+"");
}
}
public double koxux(double a, double b) {
double sum;
sum = a + b;
return sum;
}
public double ilix(double a, double b) {
double ay;
ay = a - b;
return ay;
}
public double kopaytix(double a, double b) {
double ko;
ko = a * b;
return ko;
}
public double bolox(double a, double b) {
double bo;
bo = a / b;
return bo;
}
}