From 1b7595c9b4c276f8651bdf90a4212b8be2330669 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=B6=E7=B4=AB=E9=9F=B3?= <鍙剁传闊矦LAPTOP-QCND8DO1> Date: Thu, 10 Jun 2021 15:20:44 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E5=AE=8C=E6=88=90=E7=95=8C=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2020spring/Calculator.java | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 src/java2020spring/Calculator.java diff --git a/src/java2020spring/Calculator.java b/src/java2020spring/Calculator.java new file mode 100644 index 0000000..022601b --- /dev/null +++ b/src/java2020spring/Calculator.java @@ -0,0 +1,10 @@ +package java2020spring; + +public class Calculator { + + public static void main(String[] args) { + // TODO 自动生成的方法存根 + + } + +} -- Gitee From e87122e60434ccc71c3bcacba1901ce5044737fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=B6=E7=B4=AB=E9=9F=B3?= <鍙剁传闊矦LAPTOP-QCND8DO1> Date: Thu, 10 Jun 2021 19:26:17 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E5=9F=BA=E6=9C=AC=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2020spring/Calculator.java | 220 ++++++++++++++++++++++++++++- 1 file changed, 214 insertions(+), 6 deletions(-) diff --git a/src/java2020spring/Calculator.java b/src/java2020spring/Calculator.java index 022601b..eab6951 100644 --- a/src/java2020spring/Calculator.java +++ b/src/java2020spring/Calculator.java @@ -1,10 +1,218 @@ package java2020spring; - +import java.awt.Frame; +import java.awt.TextField; +import java.awt.Button; +import java.awt.Panel; +import java.awt.GridLayout; + +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; + +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; public class Calculator { + TextField tfResult; + Button btNum[],btOper[],btPoint,btEqual,btC,btSqrt,btDe,btHuanhao; + int num1,num2;//操作数 + char oper;//操作符 + boolean isNum;//代表数字标志位 + public void init(){ + Frame f; + + tfResult=new TextField(); + + btNum=new Button[10]; + for(int i=0;i<=9;i++){ + btNum[i]=new Button(i+""); + } + btOper=new Button[4]; + btOper[0]=new Button("+"); + btOper[1]=new Button("-"); + btOper[2]=new Button("*"); + btOper[3]=new Button("/"); + + btPoint=new Button("."); + btEqual=new Button("="); + btC=new Button("C"); + btSqrt=new Button("Sqrt"); + btDe=new Button("DE"); + btHuanhao=new Button("±"); + f=new Frame("计算器"); + + f.setSize(300,300); + + //放置组件 + f.add(tfResult,"North"); + Panel panel=new Panel(); + f.add(panel,"Center"); + GridLayout gl=new GridLayout(5,4); + panel.setLayout(gl); + panel.add(btNum[1]); + panel.add(btNum[2]); + panel.add(btNum[3]); + panel.add(btOper[0]); + + panel.add(btNum[4]); + panel.add(btNum[5]); + panel.add(btNum[6]); + panel.add(btOper[1]); + + panel.add(btNum[7]); + panel.add(btNum[8]); + panel.add(btNum[9]); + panel.add(btOper[2]); + + panel.add(btNum[0]); + panel.add(btPoint); + panel.add(btEqual); + panel.add(btOper[3]); + + panel.add(btC); + panel.add(btSqrt); + panel.add(btDe); + panel.add(btHuanhao); + f.setVisible(true); + + //注册监听 + f.addWindowListener(new MyWinLis()); + //数字按钮注册监听 + MyNumLis mnl=new MyNumLis(); + for(int i=0;i<=9;i++) + btNum[i].addActionListener(mnl); + + //操作符按钮注册监听 + MyOperLis mol=new MyOperLis(); + for(int j=0;j<=3;j++) + btOper[j].addActionListener(mol); + //等号按钮注册监听 + MyEqualLis mel=new MyEqualLis(); + btEqual.addActionListener(mel); + //清除按钮注册监听 + MyCLis mcl=new MyCLis(); + btC.addActionListener(mcl); + //开根号按钮注册监听 + MySqrtLis msl=new MySqrtLis(); + btSqrt.addActionListener(msl); + //删除按钮注册监听 + MyDeLis mdl=new MyDeLis(); + btDe.addActionListener(mdl); + //换号按钮注册监听 + MyHuanhaoLis mhl=new MyHuanhaoLis(); + btHuanhao.addActionListener(mhl); + //点号按钮注册监听 + MyPointLis mpl=new MyPointLis(); + btPoint.addActionListener(mpl); + } + //定义监听器类 + class MyNumLis implements ActionListener{ + public void actionPerformed(ActionEvent e){ + String t=e.getActionCommand(); + String s=tfResult.getText(); + if(isNum==false) + tfResult.setText(t); + else + tfResult.setText(s+t); + isNum=true; + } + } + class MySqrtLis implements ActionListener{ + public void actionPerformed(ActionEvent e){ + double t=Double.parseDouble(tfResult.getText()); + tfResult.setText(Math.sqrt(t)+""); + isNum=false; + } + } + class MyDeLis implements ActionListener{ + public void actionPerformed(ActionEvent e){ + String str=""; + if(tfResult.getText().length()==1) { + str="0"; + tfResult.setText(str); + } + else { + str=DeteleString(tfResult.getText()); + tfResult.setText(str); + } + } - public static void main(String[] args) { - // TODO 自动生成的方法存根 - - } - +private String DeteleString(String text) { + String a=""; + char [] ch=tfResult.getText().toCharArray(); + for(int i=0;i0) + tfResult.setText("-"+tfResult.getText()); + //负数变正数 + else if((Double.valueOf(tfResult.getText()))<0) + tfResult.setText(tfResult.getText().replace("-","")); + } + } + class MyOperLis implements ActionListener{ + public void actionPerformed(ActionEvent e){ + num1=Integer.parseInt(tfResult.getText());//转化为INT + oper=e.getActionCommand().charAt(0); + isNum=false; + } + } + class MyEqualLis implements ActionListener{ + public void actionPerformed(ActionEvent e){ + int result=0; + isNum=false; + num2=Integer.parseInt(tfResult.getText()); + switch(oper){ + case '+':result=num1+num2;break; + case '-':result=num1-num2;break; + case '*':result=num1*num2;break; + case '/':result=num1/num2;break; + } + tfResult.setText(result+""); + } + } + class MyCLis implements ActionListener{ + public void actionPerformed(ActionEvent e){ + tfResult.setText(""); + isNum=false; + } + } + class MyPointLis implements ActionListener{ + public void actionPerformed(ActionEvent e) { + String str2=""; + + if(tfResult.getText()=="0") { + str2="0."; + tfResult.setText(str2); + isNum=true; + } + else { + str2+=e.getActionCommand(); + tfResult.setText(str2); + isNum=true; + } + + + } + } + class MyWinLis extends WindowAdapter{ + public void windowClosing(WindowEvent e){ + e.getWindow().setVisible(false); + e.getWindow().dispose(); + System.exit(0); + } + } + + public static void main(String[] args) { + + new Calculator().init(); + } + +} \ No newline at end of file -- Gitee From 14e3ead34c8c34831a9e9d004fc6f5d3e07bcb4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=B6=E7=B4=AB=E9=9F=B3?= <鍙剁传闊矦LAPTOP-QCND8DO1> Date: Thu, 10 Jun 2021 23:03:39 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=B0=8F=E6=95=B0?= =?UTF-8?q?=E8=BF=90=E7=AE=97=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2020spring/Calculator.java | 28 +++++++++++----------------- 1 file changed, 11 insertions(+), 17 deletions(-) diff --git a/src/java2020spring/Calculator.java b/src/java2020spring/Calculator.java index eab6951..d2e8d47 100644 --- a/src/java2020spring/Calculator.java +++ b/src/java2020spring/Calculator.java @@ -4,7 +4,7 @@ import java.awt.TextField; import java.awt.Button; import java.awt.Panel; import java.awt.GridLayout; - + import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; @@ -13,7 +13,7 @@ import java.awt.event.ActionListener; public class Calculator { TextField tfResult; Button btNum[],btOper[],btPoint,btEqual,btC,btSqrt,btDe,btHuanhao; - int num1,num2;//操作数 + double num1,num2;//操作数 char oper;//操作符 boolean isNum;//代表数字标志位 public void init(){ @@ -159,16 +159,16 @@ private String DeteleString(String text) { } class MyOperLis implements ActionListener{ public void actionPerformed(ActionEvent e){ - num1=Integer.parseInt(tfResult.getText());//转化为INT + num1=Double.valueOf(tfResult.getText()); oper=e.getActionCommand().charAt(0); isNum=false; } } class MyEqualLis implements ActionListener{ public void actionPerformed(ActionEvent e){ - int result=0; + double result=0; isNum=false; - num2=Integer.parseInt(tfResult.getText()); + num2=Double.valueOf(tfResult.getText()); switch(oper){ case '+':result=num1+num2;break; case '-':result=num1-num2;break; @@ -187,18 +187,12 @@ private String DeteleString(String text) { class MyPointLis implements ActionListener{ public void actionPerformed(ActionEvent e) { String str2=""; - - if(tfResult.getText()=="0") { - str2="0."; - tfResult.setText(str2); - isNum=true; - } - else { - str2+=e.getActionCommand(); - tfResult.setText(str2); - isNum=true; - } - + if("0123456789".indexOf(tfResult.getText())>=0) { + //if(tfResult.getText().equals("0")) { + str2=tfResult.getText()+"."; + tfResult.setText(str2); + isNum=true; + } } } -- Gitee From 894ce876adf3b979683798e93d0e032087ac9df0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=B6=E7=B4=AB=E9=9F=B3?= <鍙剁传闊矦LAPTOP-QCND8DO1> Date: Fri, 11 Jun 2021 10:57:14 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86=E5=B0=8F?= =?UTF-8?q?=E6=95=B0=E7=82=B9=E7=9B=91=E5=90=AC=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2020spring/Calculator.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/java2020spring/Calculator.java b/src/java2020spring/Calculator.java index d2e8d47..27a0dd1 100644 --- a/src/java2020spring/Calculator.java +++ b/src/java2020spring/Calculator.java @@ -187,12 +187,18 @@ private String DeteleString(String text) { class MyPointLis implements ActionListener{ public void actionPerformed(ActionEvent e) { String str2=""; - if("0123456789".indexOf(tfResult.getText())>=0) { - //if(tfResult.getText().equals("0")) { + if("0".indexOf(tfResult.getText())>=0) { + str2=tfResult.getText()+"."; tfResult.setText(str2); isNum=true; } + else + { + str2=tfResult.getText()+"."; + tfResult.setText(str2); + isNum=true; + } } } -- Gitee From f41653e40c337c2b7eb172f66ab1a7f16217add9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=B6=E7=B4=AB=E9=9F=B3?= <鍙剁传闊矦LAPTOP-QCND8DO1> Date: Fri, 11 Jun 2021 11:53:27 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E7=AE=80=E4=BE=BF=E4=BA=86=E5=B0=8F?= =?UTF-8?q?=E6=95=B0=E7=82=B9=E7=9B=91=E5=90=AC=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2020spring/Calculator.java | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/src/java2020spring/Calculator.java b/src/java2020spring/Calculator.java index 27a0dd1..0290215 100644 --- a/src/java2020spring/Calculator.java +++ b/src/java2020spring/Calculator.java @@ -126,7 +126,7 @@ public class Calculator { public void actionPerformed(ActionEvent e){ String str=""; if(tfResult.getText().length()==1) { - str="0"; + str=""; tfResult.setText(str); } else { @@ -187,18 +187,10 @@ private String DeteleString(String text) { class MyPointLis implements ActionListener{ public void actionPerformed(ActionEvent e) { String str2=""; - if("0".indexOf(tfResult.getText())>=0) { - str2=tfResult.getText()+"."; tfResult.setText(str2); isNum=true; - } - else - { - str2=tfResult.getText()+"."; - tfResult.setText(str2); - isNum=true; - } + } } -- Gitee