From 9cfc4eea9b4c125770cc478f90744ec582357292 Mon Sep 17 00:00:00 2001 From: singing Date: Mon, 23 May 2022 11:10:40 +0800 Subject: [PATCH 01/21] =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E4=BA=86=E9=83=A8?= =?UTF-8?q?=E5=88=86=E6=8C=89=E9=92=AE=EF=BC=8C=E8=BF=98=E6=9C=89=E5=BC=95?= =?UTF-8?q?=E5=85=A5=E4=BA=86=E9=9C=80=E8=A6=81=E7=9A=84=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/caculater.java | 95 +++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 src/java2022spring/caculater.java diff --git a/src/java2022spring/caculater.java b/src/java2022spring/caculater.java new file mode 100644 index 0000000..145ed00 --- /dev/null +++ b/src/java2022spring/caculater.java @@ -0,0 +1,95 @@ +package java2022spring; +import java.awt.Frame; +import java.awt.TextField;//文本框 +import java.awt.Button; +import java.awt.Panel;//面板 +import java.awt.GridLayout;//网格布局 +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +public class caculater { + TextFiled tfResult; + Button btNum[],btOper[],btPoint,btEqual,btBack,btSqrt,btPingfang,btLifang; + int num1,num2; + char oper; + boolean isNum; + public void init() { + Frame f; + tfResult=new TextFiled(); + 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("."); + btBack=new Button("Backspace"); + btSqrt=new Button("sqrt"); + btEqual=new Button("="); + btPingfang=new Button("2"); + btLifang=new Button("3"); + f=new Frame("sadiya的计算器"); + + f.setSize(400,400); + //放置组件 + 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(btBack); + panel.add(btSqrt); + panel.add(btPingfang); + panel.add(btLifang); + 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); + + //删除按钮注册监听 + MyBackLis mbl=new MyBackLis(); + btBack.addActionListener(mbl); + + //开根号按钮注册监听 + MySqrtLis msl=new MySqrtLis(); + btSqrt.addActionListener(msl); + + //平方 + MyPingfangLis mpl=new MyPingfangLis(); + btPingfang.addActionListener(mpl); +} -- Gitee From 57e88913c6a8c2f649ad459cd0cd085cef4b697e Mon Sep 17 00:00:00 2001 From: singing Date: Tue, 31 May 2022 23:01:29 +0800 Subject: [PATCH 02/21] =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E5=A5=BD=E4=BA=86?= =?UTF-8?q?=E5=B8=83=E5=B1=80=EF=BC=8C=E6=8C=89=E9=92=AE=EF=BC=8C=E5=A4=A7?= =?UTF-8?q?=E5=B0=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/Test.java | 7 +- src/java2022spring/caculater.java | 140 +++++++++++------------------- 2 files changed, 53 insertions(+), 94 deletions(-) diff --git a/src/java2022spring/Test.java b/src/java2022spring/Test.java index 24deb29..2b42c84 100644 --- a/src/java2022spring/Test.java +++ b/src/java2022spring/Test.java @@ -1,7 +1,6 @@ package java2022spring; - public class Test { - public static void main(String[] args) { - System.out.println("Hello world!"); - } + public static void main(String[] args) { + new caculater(); + } } diff --git a/src/java2022spring/caculater.java b/src/java2022spring/caculater.java index 145ed00..f9b92f3 100644 --- a/src/java2022spring/caculater.java +++ b/src/java2022spring/caculater.java @@ -1,95 +1,55 @@ package java2022spring; -import java.awt.Frame; -import java.awt.TextField;//文本框 -import java.awt.Button; -import java.awt.Panel;//面板 -import java.awt.GridLayout;//网格布局 +import javax.swing.*; +import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -public class caculater { - TextFiled tfResult; - Button btNum[],btOper[],btPoint,btEqual,btBack,btSqrt,btPingfang,btLifang; - int num1,num2; - char oper; - boolean isNum; +public class caculater extends JFrame implements ActionListener{ + JPanel mainwin=new JPanel();//主面板 + JPanel anniuwin=new JPanel();//按钮面板 + JTextArea result=new JTextArea(5,64);//结果框 + public static String button[]= {"%","CE","C","X","1/x","x^2","√x", + "/","7","8","9","*","4","5","6", + "-","1","2","3","+","+/-","0",".","="}; + public JButton but[]= new JButton[button.length]; + + + public caculater() //throws HeadlessException + { + this.init(); + } + //版面设计 public void init() { - Frame f; - tfResult=new TextFiled(); - btNum=new Button[10]; - for(int i=0;i<=9;i++) - { - btNum[i]=new Button(i+""); + setBackground(Color.BLACK); + setTitle("sadiya的计算器"); + setBounds(50,60,660,528); + //setSize(400,400); + setVisible(true); + //setLocation(200,200); + setDefaultCloseOperation(EXIT_ON_CLOSE); + //结果框设置 + result.setFont(new java.awt.Font("黑体", Font.PLAIN, 20)); + //按钮面板设置 + mainwin.add(result,BorderLayout.NORTH); + mainwin.add(anniuwin,BorderLayout.CENTER); + GridLayout gl=new GridLayout(6,4); + anniuwin.setLayout(gl); + for(int i=0;i Date: Sat, 4 Jun 2022 20:16:23 +0800 Subject: [PATCH 03/21] =?UTF-8?q?=E9=87=8D=E6=96=B0=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E4=BA=86=E6=8C=89=E9=92=AE=E9=A2=9C=E8=89=B2=E3=80=81=E9=97=B4?= =?UTF-8?q?=E8=B7=9D=E3=80=81=E5=A4=A7=E5=B0=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/caculater.java | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/src/java2022spring/caculater.java b/src/java2022spring/caculater.java index f9b92f3..3f984d0 100644 --- a/src/java2022spring/caculater.java +++ b/src/java2022spring/caculater.java @@ -6,7 +6,8 @@ import java.awt.event.ActionListener; public class caculater extends JFrame implements ActionListener{ JPanel mainwin=new JPanel();//主面板 JPanel anniuwin=new JPanel();//按钮面板 - JTextArea result=new JTextArea(5,64);//结果框 + JTextArea result=new JTextArea(5,44);//结果框 + //result.setHorizontalAlignment(JTextArea.RIGHT); public static String button[]= {"%","CE","C","X","1/x","x^2","√x", "/","7","8","9","*","4","5","6", "-","1","2","3","+","+/-","0",".","="}; @@ -21,10 +22,9 @@ public class caculater extends JFrame implements ActionListener{ public void init() { setBackground(Color.BLACK); setTitle("sadiya的计算器"); - setBounds(50,60,660,528); - //setSize(400,400); + setBounds(200,200,460,528); setVisible(true); - //setLocation(200,200); + setResizable(true); setDefaultCloseOperation(EXIT_ON_CLOSE); //结果框设置 result.setFont(new java.awt.Font("黑体", Font.PLAIN, 20)); @@ -37,9 +37,21 @@ public class caculater extends JFrame implements ActionListener{ but[i]=new JButton(button[i]); anniuwin.add(but[i]); but[i].setFont(new java.awt.Font("黑体", Font.PLAIN, 28)); - but[i].setPreferredSize(new Dimension(160, 60)); + but[i].setPreferredSize(new Dimension(110, 60)); + } + for(int i=0;i Date: Sat, 4 Jun 2022 20:48:35 +0800 Subject: [PATCH 04/21] =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E4=BA=86=E6=95=B0?= =?UTF-8?q?=E5=AD=971-9=E7=9A=84=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/java2022spring/caculater.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/java2022spring/caculater.java b/src/java2022spring/caculater.java index 3f984d0..2d5c7f3 100644 --- a/src/java2022spring/caculater.java +++ b/src/java2022spring/caculater.java @@ -7,7 +7,7 @@ public class caculater extends JFrame implements ActionListener{ JPanel mainwin=new JPanel();//主面板 JPanel anniuwin=new JPanel();//按钮面板 JTextArea result=new JTextArea(5,44);//结果框 - //result.setHorizontalAlignment(JTextArea.RIGHT); + String str=""; public static String button[]= {"%","CE","C","X","1/x","x^2","√x", "/","7","8","9","*","4","5","6", "-","1","2","3","+","+/-","0",".","="}; @@ -58,9 +58,14 @@ public class caculater extends JFrame implements ActionListener{ @Override public void actionPerformed(ActionEvent e) { // TODO 自动生成的方法存根 + String action =e.getActionCommand(); + if(e.getSource()==but[8]||e.getSource()==but[9]||e.getSource()==but[10]||e.getSource()==but[12]||e.getSource()==but[13]||e.getSource()==but[14]||e.getSource()==but[16]|| + e.getSource()==but[17]||e.getSource()==but[18]||e.getSource()==but[21]) + str+=e.getActionCommand(); + result.setText(str); + //数字输入 - } - } + }} -- Gitee From 5b97a171d84233111a4e6f4d802608c523a83863 Mon Sep 17 00:00:00 2001 From: singing Date: Sat, 4 Jun 2022 20:56:08 +0800 Subject: [PATCH 05/21] =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E4=BA=86=E5=8A=A0?= =?UTF-8?q?=E5=87=8F=E4=B9=98=E9=99=A4=E7=9A=84=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/java2022spring/caculater.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/java2022spring/caculater.java b/src/java2022spring/caculater.java index 2d5c7f3..d4ac5b9 100644 --- a/src/java2022spring/caculater.java +++ b/src/java2022spring/caculater.java @@ -59,11 +59,16 @@ public class caculater extends JFrame implements ActionListener{ public void actionPerformed(ActionEvent e) { // TODO 自动生成的方法存根 String action =e.getActionCommand(); + //按下10个数字 if(e.getSource()==but[8]||e.getSource()==but[9]||e.getSource()==but[10]||e.getSource()==but[12]||e.getSource()==but[13]||e.getSource()==but[14]||e.getSource()==but[16]|| - e.getSource()==but[17]||e.getSource()==but[18]||e.getSource()==but[21]) + e.getSource()==but[17]||e.getSource()==but[18]||e.getSource()==but[21]) { str+=e.getActionCommand(); - result.setText(str); - //数字输入 + result.setText(str);} + //按下加减乘除 + if(e.getSource()==but[7]||e.getSource()==but[11]||e.getSource()==but[15]||e.getSource()==but[19]) { + str+=e.getActionCommand(); + result.setText(str);} + }} -- Gitee From 196603b588414e222d03704ad72449e66d17c9f6 Mon Sep 17 00:00:00 2001 From: singing Date: Sat, 4 Jun 2022 21:31:01 +0800 Subject: [PATCH 06/21] =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E6=B8=85=E9=99=A4?= =?UTF-8?q?=E9=94=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/caculater.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/java2022spring/caculater.java b/src/java2022spring/caculater.java index d4ac5b9..fad39e4 100644 --- a/src/java2022spring/caculater.java +++ b/src/java2022spring/caculater.java @@ -8,7 +8,7 @@ public class caculater extends JFrame implements ActionListener{ JPanel anniuwin=new JPanel();//按钮面板 JTextArea result=new JTextArea(5,44);//结果框 String str=""; - public static String button[]= {"%","CE","C","X","1/x","x^2","√x", + public static String button[]= {"%","π","C","CE","1/x","x^2","√x", "/","7","8","9","*","4","5","6", "-","1","2","3","+","+/-","0",".","="}; public JButton but[]= new JButton[button.length]; @@ -68,6 +68,9 @@ public class caculater extends JFrame implements ActionListener{ if(e.getSource()==but[7]||e.getSource()==but[11]||e.getSource()==but[15]||e.getSource()==but[19]) { str+=e.getActionCommand(); result.setText(str);} + //按下清除键 + //if(e.getSource()==but[]) + }} -- Gitee From 64eaa6cda0b42774fc00d95b7a2db29add5673bb Mon Sep 17 00:00:00 2001 From: singing Date: Sun, 5 Jun 2022 11:44:31 +0800 Subject: [PATCH 07/21] =?UTF-8?q?=E9=80=80=E6=A0=BC=E9=94=AE=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/caculater.java | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/src/java2022spring/caculater.java b/src/java2022spring/caculater.java index fad39e4..42d87cf 100644 --- a/src/java2022spring/caculater.java +++ b/src/java2022spring/caculater.java @@ -69,12 +69,27 @@ public class caculater extends JFrame implements ActionListener{ str+=e.getActionCommand(); result.setText(str);} //按下清除键 - //if(e.getSource()==but[]) - + if(e.getSource()==but[2]) { + str=""; + result.setText(str); + } + //按下退格键 + if(e.getSource()==but[3]) { + if(str.length()==0 && str.length()==1) { + str=""; + } + else { + StringBuffer a=new StringBuffer(result.getText()); + a.deleteCharAt(result.getText().length()-1); + result.setText(a.toString()); + str=result.getText(); + result.setText(str); + } + } }} - + \ No newline at end of file -- Gitee From e05375f0a4d207ca9f2cadb8080cd113192b9d60 Mon Sep 17 00:00:00 2001 From: singing Date: Sun, 5 Jun 2022 11:47:57 +0800 Subject: [PATCH 08/21] =?UTF-8?q?=E6=AD=A3=E8=B4=9F=E5=8F=B7=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/caculater.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/java2022spring/caculater.java b/src/java2022spring/caculater.java index 42d87cf..48b877f 100644 --- a/src/java2022spring/caculater.java +++ b/src/java2022spring/caculater.java @@ -86,7 +86,11 @@ public class caculater extends JFrame implements ActionListener{ result.setText(str); } } - + //+/-号问题解决 + if(e.getSource()==but[20]) { + str="-"+str; + result.setText(str); + } }} -- Gitee From be54b434b27bfc9925abdd1af3d828a4b39b7687 Mon Sep 17 00:00:00 2001 From: singing Date: Sun, 5 Jun 2022 11:58:22 +0800 Subject: [PATCH 09/21] =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E5=9C=86=E5=91=A8?= =?UTF-8?q?=E7=8E=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/caculater.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/java2022spring/caculater.java b/src/java2022spring/caculater.java index 48b877f..7987b6e 100644 --- a/src/java2022spring/caculater.java +++ b/src/java2022spring/caculater.java @@ -86,12 +86,15 @@ public class caculater extends JFrame implements ActionListener{ result.setText(str); } } - //+/-号问题解决 + //+/-号问题解决 if(e.getSource()==but[20]) { str="-"+str; result.setText(str); } - + //%号设置 + if(e.getSource()==but[0]) { + + } }} -- Gitee From 6884af5531f1c29ac087a3fd4e10810d8ef63875 Mon Sep 17 00:00:00 2001 From: singing Date: Sun, 5 Jun 2022 14:10:08 +0800 Subject: [PATCH 10/21] =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E5=80=92=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/caculater.java | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/src/java2022spring/caculater.java b/src/java2022spring/caculater.java index 7987b6e..6bbf7fb 100644 --- a/src/java2022spring/caculater.java +++ b/src/java2022spring/caculater.java @@ -8,6 +8,7 @@ public class caculater extends JFrame implements ActionListener{ JPanel anniuwin=new JPanel();//按钮面板 JTextArea result=new JTextArea(5,44);//结果框 String str=""; + double z; public static String button[]= {"%","π","C","CE","1/x","x^2","√x", "/","7","8","9","*","4","5","6", "-","1","2","3","+","+/-","0",".","="}; @@ -91,9 +92,28 @@ public class caculater extends JFrame implements ActionListener{ str="-"+str; result.setText(str); } - //%号设置 + /*%号设置 if(e.getSource()==but[0]) { + }*/ + + + //pai设置 + if(e.getSource()==but[1]) { + str += "3.1415926535898"; + } + //1/x设置 + if(e.getSource()==but[4]) { + if(Double.parseDouble(str)==0) { + result.setText("除数不能为0"); + } + else if(Double.parseDouble(str)!=0) { + z = 1/Double.parseDouble(str); + str =""+z; + result.setText(str); + + } + } }} -- Gitee From 44db6dfbe18c0e0e0d296cbd9c71b2063e6ea072 Mon Sep 17 00:00:00 2001 From: singing Date: Sun, 5 Jun 2022 14:35:56 +0800 Subject: [PATCH 11/21] =?UTF-8?q?=E7=BB=9D=E5=AF=B9=E5=80=BC=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/caculater.java | 33 ++++++++++++++++++++++++------- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/src/java2022spring/caculater.java b/src/java2022spring/caculater.java index 6bbf7fb..dc3398e 100644 --- a/src/java2022spring/caculater.java +++ b/src/java2022spring/caculater.java @@ -8,8 +8,8 @@ public class caculater extends JFrame implements ActionListener{ JPanel anniuwin=new JPanel();//按钮面板 JTextArea result=new JTextArea(5,44);//结果框 String str=""; - double z; - public static String button[]= {"%","π","C","CE","1/x","x^2","√x", + double z,number; + public static String button[]= {"|x|","π","C","CE","1/x","x^2","√x", "/","7","8","9","*","4","5","6", "-","1","2","3","+","+/-","0",".","="}; public JButton but[]= new JButton[button.length]; @@ -92,10 +92,12 @@ public class caculater extends JFrame implements ActionListener{ str="-"+str; result.setText(str); } - /*%号设置 + //绝对值设置 if(e.getSource()==but[0]) { - - }*/ + z=Math.abs(Double.parseDouble(str)); + str=""+z; + result.setText(str); + } //pai设置 @@ -111,9 +113,26 @@ public class caculater extends JFrame implements ActionListener{ z = 1/Double.parseDouble(str); str =""+z; result.setText(str); - } - + //设置平方 + if(e.getSource()==but[5]) { + z = Math.pow (Double.parseDouble(str), 2); + str = ""+z; + result.setText(str); + } + //设置根号 + if(e.getSource()==but[6]) { + number=Double.parseDouble(str); + if(number>=0) { + z = Math.sqrt (number); + str=""+z; + result.setText(str);} + else { + result.setText("大于0的数字才可以开根号"); + } + } + //设置四则运算 + } }} -- Gitee From e0a52eb5c599d243e370d666cbe4736efe1a1ddf Mon Sep 17 00:00:00 2001 From: singing Date: Mon, 6 Jun 2022 10:43:54 +0800 Subject: [PATCH 12/21] =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E4=BA=86=E5=8A=A0?= =?UTF-8?q?=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/caculater.java | 156 ++++++++++++++++++++---------- 1 file changed, 103 insertions(+), 53 deletions(-) diff --git a/src/java2022spring/caculater.java b/src/java2022spring/caculater.java index dc3398e..44d999a 100644 --- a/src/java2022spring/caculater.java +++ b/src/java2022spring/caculater.java @@ -3,12 +3,14 @@ import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.math.*; +import java.util.Scanner; public class caculater extends JFrame implements ActionListener{ JPanel mainwin=new JPanel();//主面板 JPanel anniuwin=new JPanel();//按钮面板 JTextArea result=new JTextArea(5,44);//结果框 - String str=""; - double z,number; + String str="",str1="",str2=""; + double z,number,x,y;int i=0; public static String button[]= {"|x|","π","C","CE","1/x","x^2","√x", "/","7","8","9","*","4","5","6", "-","1","2","3","+","+/-","0",".","="}; @@ -52,24 +54,33 @@ public class caculater extends JFrame implements ActionListener{ for(int i=0;i=0) { - z = Math.sqrt (number); - str=""+z; - result.setText(str);} - else { - result.setText("大于0的数字才可以开根号"); - } - } + if(e.getSource()==but[6]) { + number=Double.parseDouble(str); + if(number>=0) { + z = Math.sqrt (number); + str=""+z; + result.setText(str);} + else { + result.setText("大于0的数字才可以开根号"); + } + } + //+/-号问题解决 + if(e.getSource()==but[20]) { + str+="-"; + result.setText(str);} + //小数点设置 + if(e.getActionCommand().equals(".")) { + str= str +e.getActionCommand(); + result.setText(str); + } + /*等于号设置 + if(e.getActionCommand().equals("=")) { + Scanner scanner = new Scanner(result.getText()); + str = saveNumberAndCalculator(scanner.next()); + }*/ + + + + + //设置四则运算 + if(e.getActionCommand().equals("+")&&str1==""){ + str1=str; + str=""; + str+=e.getActionCommand(); + result.setText(str); + i=1; + } + if(i==1 && e.getActionCommand().equals("=")){ + x=Double.parseDouble(str); + y=Double.parseDouble(str1); + number=x+y; + str=""+number; + result.setText(str); + i=0; + //加法运算 + } + if(e.getActionCommand().equals("-")&&str1==""){ + if(str!=""){ + str1=str; + str=""; + str+=e.getActionCommand(); + result.setText(str); + i=2;} + else { + } + } + if(i==2 && e.getActionCommand().equals("=")){ + x=Double.parseDouble(str); + y=Double.parseDouble(str1); + number=x-y; + str=""+number; + result.setText(str); + i=0; + } + //减法运算 } - }} + } + -- Gitee From 80ecb7117b9e2290b772d433ea0f0d1a5234a7e7 Mon Sep 17 00:00:00 2001 From: singing Date: Mon, 6 Jun 2022 19:44:06 +0800 Subject: [PATCH 13/21] =?UTF-8?q?=E5=87=8F=E6=B3=95=EF=BC=8C=E4=B9=98?= =?UTF-8?q?=E6=B3=95=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/caculater.java | 34 +++++++++++++++++++++++-------- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/src/java2022spring/caculater.java b/src/java2022spring/caculater.java index 44d999a..7c7fc4e 100644 --- a/src/java2022spring/caculater.java +++ b/src/java2022spring/caculater.java @@ -127,9 +127,9 @@ public class caculater extends JFrame implements ActionListener{ } } //+/-号问题解决 - if(e.getSource()==but[20]) { - str+="-"; - result.setText(str);} + //if(e.getSource()==but[20]) { + // str+="-"; + // result.setText(str);} //小数点设置 if(e.getActionCommand().equals(".")) { str= str +e.getActionCommand(); @@ -149,8 +149,7 @@ public class caculater extends JFrame implements ActionListener{ if(e.getActionCommand().equals("+")&&str1==""){ str1=str; str=""; - str+=e.getActionCommand(); - result.setText(str); + result.setText(e.getActionCommand()); i=1; } if(i==1 && e.getActionCommand().equals("=")){ @@ -166,8 +165,8 @@ public class caculater extends JFrame implements ActionListener{ if(str!=""){ str1=str; str=""; - str+=e.getActionCommand(); - result.setText(str); + + result.setText(e.getActionCommand()); i=2;} else { } @@ -175,13 +174,30 @@ public class caculater extends JFrame implements ActionListener{ if(i==2 && e.getActionCommand().equals("=")){ x=Double.parseDouble(str); y=Double.parseDouble(str1); - number=x-y; + number=y-x; str=""+number; result.setText(str); i=0; } //减法运算 - + if(e.getActionCommand().equals("*")&&str1==""){ + if(str!=""){ + str1=str; + str=""; + result.setText(e.getActionCommand()); + i=3;} + else { + } + } + if(i==3 && e.getActionCommand().equals("=")){ + x=Double.parseDouble(str); + y=Double.parseDouble(str1); + number=y*x; + str=""+number; + result.setText(str); + i=0; + } + //乘法运算 } } -- Gitee From 2164e3012b4adb492b351a6c67fb597271ca2abb Mon Sep 17 00:00:00 2001 From: singing Date: Mon, 6 Jun 2022 20:05:05 +0800 Subject: [PATCH 14/21] =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E4=BA=86=E8=BF=9E?= =?UTF-8?q?=E7=BB=AD=E8=AE=A1=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/caculater.java | 138 +++++++++++++++++++++++++++--- 1 file changed, 126 insertions(+), 12 deletions(-) diff --git a/src/java2022spring/caculater.java b/src/java2022spring/caculater.java index 7c7fc4e..1d1232f 100644 --- a/src/java2022spring/caculater.java +++ b/src/java2022spring/caculater.java @@ -82,8 +82,18 @@ public class caculater extends JFrame implements ActionListener{ } //按下清除键 if(e.getSource()==but[2]) { - str=""; - result.setText(str); + if(str ==""){ + str1=""; + result.setText("0"); + } + if(str!=""&&str1==""){ + str=""; + result.setText("0"); + } + if(str!=""&&str1!=""){ + str1=""; + result.setText("0"); + } } //按下退格键 if(e.getSource()==but[3]) { @@ -127,21 +137,14 @@ public class caculater extends JFrame implements ActionListener{ } } //+/-号问题解决 - //if(e.getSource()==but[20]) { - // str+="-"; - // result.setText(str);} + if(e.getSource()==but[20]) { + str+="-"; + result.setText(str);} //小数点设置 if(e.getActionCommand().equals(".")) { str= str +e.getActionCommand(); result.setText(str); } - /*等于号设置 - if(e.getActionCommand().equals("=")) { - Scanner scanner = new Scanner(result.getText()); - str = saveNumberAndCalculator(scanner.next()); - }*/ - - @@ -198,6 +201,117 @@ public class caculater extends JFrame implements ActionListener{ i=0; } //乘法运算 + if(e.getActionCommand().equals("/")&&str1==""){ + if(str!=""){ + str1=str; + str=""; + result.setText(e.getActionCommand()); + i=4;} + else { + } + } + if(i==4 && e.getActionCommand().equals("=")){ + x=Double.parseDouble(str); + y=Double.parseDouble(str1); + number=y/x; + str=""+number; + result.setText(str); + i=0; + } + //除法运算 + //连续运算 + if(str1!=""&&str!=""&&e.getActionCommand().equals("+")){ + x=Double.parseDouble(str1); + y=Double.parseDouble(str); + switch(i){ + case 1: + number=x+y; + break; + case 2: + number=y-x; + break; + case 3: + number=y*x; + break; + case 4: + number=y/x; + break; + } + str=""+number; + result.setText(str); + str1=str; + str=""; + i=1; + } + if(str1!=""&&str!=""&&e.getActionCommand().equals("-")){ + x=Double.parseDouble(str1); + y=Double.parseDouble(str); + switch(i){ + case 1: + number=x+y; + break; + case 2: + number=y-x; + break; + case 3: + number=y*x; + break; + case 4: + number=y/x; + break; + } + str=""+number; + result.setText(str); + str1=str; + str=""; + i=2; + } + if(str1!=""&&str!=""&&e.getActionCommand().equals("*")){ + x=Double.parseDouble(str1); + y=Double.parseDouble(str); + switch(i){ + case 1: + number=x+y; + break; + case 2: + number=y-x; + break; + case 3: + number=y*x; + break; + case 4: + number=y/x; + break; + } + str=""+number; + result.setText(str); + str1=str; + str=""; + i=3; + } + if(str1!=""&&str!=""&&e.getActionCommand().equals("/")){ + x=Double.parseDouble(str1); + y=Double.parseDouble(str); + switch(i){ + case 1: + number=x+y; + break; + case 2: + number=y-x; + break; + case 3: + number=y*x; + break; + case 4: + number=y/x; + break; + } + str=""+number; + result.setText(str); + str1=str; + str=""; + i=4; + } } } -- Gitee From 74a4286630b941a4cbf1bd526f1a60d64bc23e3a Mon Sep 17 00:00:00 2001 From: singing Date: Tue, 7 Jun 2022 13:13:39 +0800 Subject: [PATCH 15/21] =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E4=BA=86=E8=BF=9E?= =?UTF-8?q?=E7=BB=AD=E8=AE=A1=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/caculater.java | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/java2022spring/caculater.java b/src/java2022spring/caculater.java index 1d1232f..ecd83a5 100644 --- a/src/java2022spring/caculater.java +++ b/src/java2022spring/caculater.java @@ -64,11 +64,6 @@ public class caculater extends JFrame implements ActionListener{ e.getSource()==but[17]||e.getSource()==but[18]||e.getSource()==but[21]) { str+=e.getActionCommand(); result.setText(str);} - /*按下加减乘除 - if(e.getSource()==but[7]||e.getSource()==but[11]||e.getSource()==but[15]|| - e.getSource()==but[19]) { - str+=e.getActionCommand(); - result.setText(str);}*/ //绝对值设置 if(e.getSource()==but[0]) { z=Math.abs(Double.parseDouble(str)); -- Gitee From 095b1e41abaaed3192c2ae453d4b195884a5c7bb Mon Sep 17 00:00:00 2001 From: singing Date: Tue, 7 Jun 2022 13:14:08 +0800 Subject: [PATCH 16/21] =?UTF-8?q?=E8=BF=9E=E7=BB=AD=E8=AE=A1=E7=AE=97?= =?UTF-8?q?=E9=99=A4=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/caculater.java | 24 +----------------------- 1 file changed, 1 insertion(+), 23 deletions(-) diff --git a/src/java2022spring/caculater.java b/src/java2022spring/caculater.java index ecd83a5..b819037 100644 --- a/src/java2022spring/caculater.java +++ b/src/java2022spring/caculater.java @@ -284,29 +284,7 @@ public class caculater extends JFrame implements ActionListener{ str=""; i=3; } - if(str1!=""&&str!=""&&e.getActionCommand().equals("/")){ - x=Double.parseDouble(str1); - y=Double.parseDouble(str); - switch(i){ - case 1: - number=x+y; - break; - case 2: - number=y-x; - break; - case 3: - number=y*x; - break; - case 4: - number=y/x; - break; - } - str=""+number; - result.setText(str); - str1=str; - str=""; - i=4; - } + } } -- Gitee From 8d100220f287058186ecc11ea917542896032e44 Mon Sep 17 00:00:00 2001 From: singing Date: Thu, 9 Jun 2022 00:48:20 +0800 Subject: [PATCH 17/21] =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E4=BA=86=E5=A6=82?= =?UTF-8?q?=E6=9E=9C=E6=B2=A1=E6=8C=89=E6=95=B0=E5=AD=97=E5=85=88=E6=8C=89?= =?UTF-8?q?=E5=8A=A0=E5=87=8F=E4=B9=98=E9=99=A4=E4=BC=9A=E6=8F=90=E7=A4=BA?= =?UTF-8?q?=E2=80=9C=E8=AF=B7=E5=85=88=E8=BE=93=E5=85=A5=E6=95=B0=E5=AD=97?= =?UTF-8?q?=E2=80=9D=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/caculater.java | 36 ++++++++++++++++++++++++++++--- 1 file changed, 33 insertions(+), 3 deletions(-) diff --git a/src/java2022spring/caculater.java b/src/java2022spring/caculater.java index b819037..5b0fecc 100644 --- a/src/java2022spring/caculater.java +++ b/src/java2022spring/caculater.java @@ -9,6 +9,8 @@ public class caculater extends JFrame implements ActionListener{ JPanel mainwin=new JPanel();//主面板 JPanel anniuwin=new JPanel();//按钮面板 JTextArea result=new JTextArea(5,44);//结果框 + //JMenu menu1=new JMenu("编辑"); + //JMenuItem menuitem1=new JMenuItem("历史记录"); String str="",str1="",str2=""; double z,number,x,y;int i=0; public static String button[]= {"|x|","π","C","CE","1/x","x^2","√x", @@ -54,6 +56,8 @@ public class caculater extends JFrame implements ActionListener{ for(int i=0;i Date: Thu, 9 Jun 2022 01:42:00 +0800 Subject: [PATCH 18/21] =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E4=BA=86=E9=83=A8?= =?UTF-8?q?=E5=88=86=E5=8A=9F=E8=83=BD=E6=8C=89=E9=92=AE=E5=A6=82=E6=9E=9C?= =?UTF-8?q?=E6=B2=A1=E8=BE=93=E5=85=A5=E6=95=B0=E5=AD=97=E6=8F=90=E9=86=92?= =?UTF-8?q?=E2=80=9C=E8=AF=B7=E5=85=88=E8=BE=93=E5=85=A5=E6=95=B0=E5=AD=97?= =?UTF-8?q?=E2=80=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/caculater.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/java2022spring/caculater.java b/src/java2022spring/caculater.java index 5b0fecc..e2ed210 100644 --- a/src/java2022spring/caculater.java +++ b/src/java2022spring/caculater.java @@ -70,10 +70,13 @@ public class caculater extends JFrame implements ActionListener{ result.setText(str);} //绝对值设置 if(e.getSource()==but[0]) { + if(str!=""&&Double.parseDouble(str)!=0.00) { z=Math.abs(Double.parseDouble(str)); str=""+z; result.setText(str); } + else {result.setText("请先输入数字。");} + } //圆周率设置 if(e.getSource()==but[1]) { str += "3.1415926535898"; @@ -83,7 +86,7 @@ public class caculater extends JFrame implements ActionListener{ if(e.getSource()==but[2]) { if(str ==""){ str1=""; - result.setText("0"); + result.setText("0.00"); } if(str!=""&&str1==""){ str=""; @@ -120,10 +123,13 @@ public class caculater extends JFrame implements ActionListener{ } //设置平方 if(e.getSource()==but[5]) { + if(str!="") { z = Math.pow (Double.parseDouble(str), 2); str = ""+z; result.setText(str); } + else {result.setText("请先输入数字。");} + } //设置根号 if(e.getSource()==but[6]) { number=Double.parseDouble(str); @@ -171,10 +177,9 @@ public class caculater extends JFrame implements ActionListener{ if(str!=""){ str1=str; str=""; - result.setText(e.getActionCommand()); i=2;} - else { + else { result.setText("请先输入数字。"); } } if(i==2 && e.getActionCommand().equals("=")){ @@ -192,7 +197,7 @@ public class caculater extends JFrame implements ActionListener{ str=""; result.setText(e.getActionCommand()); i=3;} - else { + else { result.setText("请先输入数字。"); } } if(i==3 && e.getActionCommand().equals("=")){ @@ -210,7 +215,7 @@ public class caculater extends JFrame implements ActionListener{ str=""; result.setText(e.getActionCommand()); i=4;} - else { + else { result.setText("请先输入数字。"); } } if(i==4 && e.getActionCommand().equals("=")){ -- Gitee From dfa7f49579bb4e2235f2a55dc34814bb1cd9cd91 Mon Sep 17 00:00:00 2001 From: singing Date: Thu, 9 Jun 2022 01:47:16 +0800 Subject: [PATCH 19/21] =?UTF-8?q?=E5=AE=8C=E5=96=84=E4=BA=86=E5=8F=96?= =?UTF-8?q?=E8=B4=9F=E5=8F=B7=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/caculater.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/java2022spring/caculater.java b/src/java2022spring/caculater.java index e2ed210..8bdc684 100644 --- a/src/java2022spring/caculater.java +++ b/src/java2022spring/caculater.java @@ -143,8 +143,15 @@ public class caculater extends JFrame implements ActionListener{ } //+/-号问题解决 if(e.getSource()==but[20]) { + if(str!="") { + str1=str; + str="-"+str1; + result.setText(str); + } + else { str+="-"; result.setText(str);} + } //小数点设置 if(e.getActionCommand().equals(".")) { str= str +e.getActionCommand(); -- Gitee From 52cd59c03d2073bbe4169da1899a8d5c9fd016b3 Mon Sep 17 00:00:00 2001 From: singing Date: Thu, 9 Jun 2022 02:17:16 +0800 Subject: [PATCH 20/21] =?UTF-8?q?=E5=AE=8C=E5=96=84=E4=BA=86=E6=9C=AA?= =?UTF-8?q?=E8=BE=93=E5=85=A5=E6=95=B0=E5=AD=97=E5=85=88=E8=BE=93=E5=85=A5?= =?UTF-8?q?=E5=B0=8F=E6=95=B0=E7=82=B9=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/java2022spring/caculater.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/java2022spring/caculater.java b/src/java2022spring/caculater.java index 8bdc684..14c2785 100644 --- a/src/java2022spring/caculater.java +++ b/src/java2022spring/caculater.java @@ -147,6 +147,7 @@ public class caculater extends JFrame implements ActionListener{ str1=str; str="-"+str1; result.setText(str); + x=Double.parseDouble(str); } else { str+="-"; @@ -154,8 +155,12 @@ public class caculater extends JFrame implements ActionListener{ } //小数点设置 if(e.getActionCommand().equals(".")) { + if(str!="") { str= str +e.getActionCommand(); - result.setText(str); + result.setText(str);} + else { + result.setText("请先输入数字。"); + } } -- Gitee From efff91f6d237dc44c5d27187584561cf1a1fd058 Mon Sep 17 00:00:00 2001 From: singing Date: Thu, 9 Jun 2022 02:30:55 +0800 Subject: [PATCH 21/21] =?UTF-8?q?=E6=9C=80=E7=BB=88=E5=AE=8C=E5=96=84?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=80=E4=BA=9B=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/caculater.java | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/src/java2022spring/caculater.java b/src/java2022spring/caculater.java index 14c2785..589c206 100644 --- a/src/java2022spring/caculater.java +++ b/src/java2022spring/caculater.java @@ -4,13 +4,10 @@ import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.math.*; -import java.util.Scanner; public class caculater extends JFrame implements ActionListener{ JPanel mainwin=new JPanel();//主面板 JPanel anniuwin=new JPanel();//按钮面板 JTextArea result=new JTextArea(5,44);//结果框 - //JMenu menu1=new JMenu("编辑"); - //JMenuItem menuitem1=new JMenuItem("历史记录"); String str="",str1="",str2=""; double z,number,x,y;int i=0; public static String button[]= {"|x|","π","C","CE","1/x","x^2","√x", @@ -19,7 +16,7 @@ public class caculater extends JFrame implements ActionListener{ public JButton but[]= new JButton[button.length]; - public caculater() //throws HeadlessException + public caculater() { this.init(); } @@ -56,8 +53,6 @@ public class caculater extends JFrame implements ActionListener{ for(int i=0;i