From 00c23c0f548ddf2d206ee9b00b00df1350902e32 Mon Sep 17 00:00:00 2001 From: ma Date: Fri, 13 May 2022 21:24:25 +0800 Subject: [PATCH 01/13] =?UTF-8?q?=E7=AC=AC=E4=B8=80=E6=AC=A1=E6=8F=90?= =?UTF-8?q?=E4=BA=A4=E4=BB=A3=E7=A0=81=EF=BC=8C=E4=B8=BB=E8=A6=81=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=E7=AA=97=E5=8F=A3=E4=BD=8D=E7=BD=AE=E5=92=8C=E8=8F=9C?= =?UTF-8?q?=E5=8D=95=E6=A0=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/Standard.java | 5 +++++ src/java2022spring/StandardMainClass.java | 5 +++++ 2 files changed, 10 insertions(+) create mode 100644 src/java2022spring/Standard.java create mode 100644 src/java2022spring/StandardMainClass.java diff --git a/src/java2022spring/Standard.java b/src/java2022spring/Standard.java new file mode 100644 index 0000000..8e5bad6 --- /dev/null +++ b/src/java2022spring/Standard.java @@ -0,0 +1,5 @@ +package java2022spring; + +public class Standard { + +} diff --git a/src/java2022spring/StandardMainClass.java b/src/java2022spring/StandardMainClass.java new file mode 100644 index 0000000..33b5d86 --- /dev/null +++ b/src/java2022spring/StandardMainClass.java @@ -0,0 +1,5 @@ +package java2022spring; + +public class StandardMainClass { + +} -- Gitee From ce65f73638c3ed389d5b3b5be14893864db15683 Mon Sep 17 00:00:00 2001 From: ma Date: Sat, 14 May 2022 21:06:58 +0800 Subject: [PATCH 02/13] =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E4=BA=86=E8=AE=A1?= =?UTF-8?q?=E7=AE=97=E5=99=A8=E7=9A=84=E6=8C=89=E9=94=AE=E5=86=85=E5=AE=B9?= =?UTF-8?q?=EF=BC=8C=E5=B0=86=E6=8C=89=E9=94=AE=E5=92=8C=E6=96=87=E6=9C=AC?= =?UTF-8?q?=E6=A1=86=E4=BB=A5=E5=90=88=E7=90=86=E4=BD=8D=E7=BD=AE=E6=94=BE?= =?UTF-8?q?=E5=85=A5=E9=9D=A2=E6=9D=BF=E4=B8=AD=E3=80=82=E5=90=8C=E6=97=B6?= =?UTF-8?q?=EF=BC=8C=E5=AE=9E=E7=8E=B0=E6=8C=89=E9=94=AE=E7=9A=84=E9=83=A8?= =?UTF-8?q?=E5=88=86=E5=8A=9F=E8=83=BD=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/Standard.java | 103 ++++++++++++++++++++++++++++++- 1 file changed, 101 insertions(+), 2 deletions(-) diff --git a/src/java2022spring/Standard.java b/src/java2022spring/Standard.java index 8e5bad6..4d035ed 100644 --- a/src/java2022spring/Standard.java +++ b/src/java2022spring/Standard.java @@ -1,5 +1,104 @@ package java2022spring; - -public class Standard { +import java.awt.event.*; +import java.awt.*; +import javax.swing.*; +public class Standard extends JFrame implements ActionListener { + private final String[] KEYS= {"(",")","C","BACK","1/x","x^2","|x|","÷","7","8","9","×","4","5","6","-","1","2","3","+","%","0",".","="}; + private JButton keys[]=new JButton[KEYS.length]; + JMenuBar menubar; + JMenu menufunction; + JMenuItem menustandard,menuscience; + JTextField text=new JTextField("0"); + Boolean first=true; + Standard(){ + this.setTitle("标准计算器"); + this.setBackground(Color.white); + this.setSize(500,500); + this.setLocation(100, 100); + menubar=new JMenuBar(); + menufunction=new JMenu("功能"); + menustandard=new JMenuItem("标准型"); + menuscience=new JMenuItem("科学型"); + menubar.add(menufunction); + menufunction.add(menustandard); + menufunction.add(menuscience); + text.setHorizontalAlignment(JTextField.RIGHT); + text.setBackground(Color.LIGHT_GRAY); + text.setFont(new Font("Arial",Font.BOLD,35)); + JPanel panel=new JPanel(); + panel.setLayout(new GridLayout(6,4,4,4)); + for(int i=0;i0) { + fieldText=fieldText.substring(0,i-1); + if(fieldText.length()==0) { + text.setText("0"); + } + else { + text.setText(fieldText); + first=false; + } + } + } + else if(e.equals("C")) { + text.setText("0"); + } + else if(".123456789".indexOf(str)>=0) { + if(first) { + text.setText(str); + } + else if(str.equals(".")&&text.getText().indexOf(".")==-1) { + text.setText(text.getText()+str); + } + else + text.setText(text.getText()+str); + first=false; + } + + } + } -- Gitee From c3d8420c9d0140181c54195985214b5808b0e84a Mon Sep 17 00:00:00 2001 From: ma Date: Sun, 15 May 2022 22:26:51 +0800 Subject: [PATCH 03/13] =?UTF-8?q?=E8=AF=A5=E6=96=87=E4=BB=B6=E5=87=BA?= =?UTF-8?q?=E4=BA=86=E9=97=AE=E9=A2=98=EF=BC=8C=E9=87=8D=E6=96=B0=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=EF=BC=8C=E5=B9=B6=E5=88=A0=E9=99=A4=E4=BA=86setSize?= =?UTF-8?q?=E5=87=BD=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/StandardMainClass.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/java2022spring/StandardMainClass.java b/src/java2022spring/StandardMainClass.java index 33b5d86..9d74750 100644 --- a/src/java2022spring/StandardMainClass.java +++ b/src/java2022spring/StandardMainClass.java @@ -1,5 +1,11 @@ package java2022spring; - +import java.awt.*; +import javax.swing.*; public class StandardMainClass { - -} + public static void main(String[] args) { + Standard calculator=new Standard(); + calculator.setVisible(true); + calculator.setTitle("标准型"); + calculator.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + } +} \ No newline at end of file -- Gitee From 50c37b8fabf1a75558dbc069b61d416e31a9ed31 Mon Sep 17 00:00:00 2001 From: ma Date: Mon, 16 May 2022 23:21:49 +0800 Subject: [PATCH 04/13] =?UTF-8?q?=E5=B0=86=E8=AE=A1=E7=AE=97=E7=9A=84?= =?UTF-8?q?=E6=96=B9=E6=B3=95=E8=A1=A5=E5=85=85=E5=AE=8C=E6=95=B4=EF=BC=8C?= =?UTF-8?q?=E6=95=B4=E4=BD=93=E6=A1=86=E6=9E=B6=E5=A4=A7=E8=87=B4=E6=9E=84?= =?UTF-8?q?=E9=80=A0=E5=87=BA=E6=9D=A5=E4=BA=86=EF=BC=8C=E4=BF=AE=E6=AD=A3?= =?UTF-8?q?=E6=98=A8=E5=A4=A9=E5=AF=BC=E8=87=B4Back=E5=92=8CC=E6=97=A0?= =?UTF-8?q?=E6=B3=95=E8=BF=9B=E8=A1=8C=E5=8A=A8=E4=BD=9C=E7=9A=84bug?= =?UTF-8?q?=EF=BC=8C=E4=BD=86=E8=AE=A1=E7=AE=97=E6=96=B9=E6=B3=95=E8=BF=98?= =?UTF-8?q?=E6=9C=89=E5=BE=88=E5=A4=9Abug=E9=9C=80=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/Standard.java | 74 ++++++++++++++++++++++++++++---- 1 file changed, 66 insertions(+), 8 deletions(-) diff --git a/src/java2022spring/Standard.java b/src/java2022spring/Standard.java index 4d035ed..8964a60 100644 --- a/src/java2022spring/Standard.java +++ b/src/java2022spring/Standard.java @@ -3,13 +3,16 @@ import java.awt.event.*; import java.awt.*; import javax.swing.*; public class Standard extends JFrame implements ActionListener { - private final String[] KEYS= {"(",")","C","BACK","1/x","x^2","|x|","÷","7","8","9","×","4","5","6","-","1","2","3","+","%","0",".","="}; + private final String[] KEYS= {"+/-","PI","C","BACK","1/x","x^2","|x|","÷","7","8","9","×","4","5","6","-","1","2","3","+","%","0",".","="}; private JButton keys[]=new JButton[KEYS.length]; JMenuBar menubar; JMenu menufunction; JMenuItem menustandard,menuscience; JTextField text=new JTextField("0"); Boolean first=true; + Boolean correct=true; + double result=0; + Button b=new Button(); Standard(){ this.setTitle("标准计算器"); this.setBackground(Color.white); @@ -57,6 +60,7 @@ public class Standard extends JFrame implements ActionListener { for(int i=0;i0) { fieldText=fieldText.substring(0,i-1); if(fieldText.length()==0) { - text.setText("0"); + text.setText("0"); } else { text.setText(fieldText); @@ -83,7 +87,7 @@ public class Standard extends JFrame implements ActionListener { } } } - else if(e.equals("C")) { + else if(str.equals("C")) { text.setText("0"); } else if(".123456789".indexOf(str)>=0) { @@ -91,14 +95,68 @@ public class Standard extends JFrame implements ActionListener { text.setText(str); } else if(str.equals(".")&&text.getText().indexOf(".")==-1) { - text.setText(text.getText()+str); + text.setText(text.getText()+"."); } - else + else if(!str.equals(".")) { text.setText(text.getText()+str); + } first=false; } - + else { + result=Double.valueOf(text.getText()).doubleValue(); + double n; + String operator="="; + if(str.equals("+")) { + n=new Double(text.getText()).doubleValue(); + result+=n; + } + else if(str.equals("-")) { + n=new Double(text.getText()).doubleValue(); + result-=n; + } + else if(str.equals("×")) { + n=new Double(text.getText()).doubleValue(); + result*=n; + } + else if(str.equals("÷")) { + n=new Double(text.getText()).doubleValue(); + if(n==0) { + text.setText("除数不能为0"); + correct=false; + } + else + result/=n; + } + else if(str.equals("|x|")) { + n=new Double(text.getText()).doubleValue(); + result=Math.abs(n); + } + else if(str.equals("1/x")) { + if(result==0) { + text.setText("零没有倒数"); + correct=false; + } + else + result=1/result; + } + else if(str.equals("%")) { + n=new Double(text.getText()).doubleValue(); + result%=n; + } + else if(str.equals("x^2")) { + n=new Double(text.getText()).doubleValue(); + result=n*n; + } + else if(str.equals("PI")) { + text.setText(String.valueOf(3.14159265753)); + } + else if(str.equals("=")) { + if(correct) + text.setText(String.valueOf(result)); + } + correct=true; + first=true; } - + } } -- Gitee From 5e0a1ee12f477d71988c6ab50073821deaeadfb6 Mon Sep 17 00:00:00 2001 From: ma Date: Tue, 17 May 2022 23:02:58 +0800 Subject: [PATCH 05/13] =?UTF-8?q?=E5=AE=8C=E6=88=90=E7=AE=80=E6=98=93?= =?UTF-8?q?=E8=AE=A1=E7=AE=97=E5=99=A8=EF=BC=8C=E4=BF=AE=E5=A4=8D=E4=BA=86?= =?UTF-8?q?bug=EF=BC=9B=E5=BC=80=E5=A7=8B=E5=88=B6=E4=BD=9C=E7=A7=91?= =?UTF-8?q?=E5=AD=A6=E8=AE=A1=E7=AE=97=E5=99=A8=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/Science.java | 21 ++++++ src/java2022spring/Standard.java | 126 ++++++++++++++----------------- 2 files changed, 78 insertions(+), 69 deletions(-) create mode 100644 src/java2022spring/Science.java diff --git a/src/java2022spring/Science.java b/src/java2022spring/Science.java new file mode 100644 index 0000000..b6cae43 --- /dev/null +++ b/src/java2022spring/Science.java @@ -0,0 +1,21 @@ +package java2022spring; +import java.awt.event.*; +import java.awt.*; +import javax.swing.*; +public class Science extends JFrame implements ActionListener{ + private final String[] KEYS = { "+/-","PI","C","BACK","x^3","x^y","sqrt","rt","X!","ln","lg","e","sin","cos","tan","e^x","1/x","x^2","|x|","÷","7","8","9","×","4","5","6","-","1","2","3","+","%","0",".","="}; + private JButton keys[]=new JButton[KEYS.length]; + JMenuBar menubar; + JMenu menufunction; + JMenuItem menustandard,menuscience; + JTextField text=new JTextField(); + String first=null; + String operator=null; + Double result; + + @Override + public void actionPerformed(ActionEvent e) { + // TODO 自动生成的方法存根 + + } +} diff --git a/src/java2022spring/Standard.java b/src/java2022spring/Standard.java index 8964a60..f3bc5e1 100644 --- a/src/java2022spring/Standard.java +++ b/src/java2022spring/Standard.java @@ -8,11 +8,10 @@ public class Standard extends JFrame implements ActionListener { JMenuBar menubar; JMenu menufunction; JMenuItem menustandard,menuscience; - JTextField text=new JTextField("0"); - Boolean first=true; - Boolean correct=true; - double result=0; - Button b=new Button(); + JTextField text=new JTextField(); + String first=null; + String operator=null; + Double result; Standard(){ this.setTitle("标准计算器"); this.setBackground(Color.white); @@ -60,7 +59,6 @@ public class Standard extends JFrame implements ActionListener { for(int i=0;i0) { fieldText=fieldText.substring(0,i-1); if(fieldText.length()==0) { - text.setText("0"); + text.setText(""); } else { text.setText(fieldText); - first=false; } } } else if(str.equals("C")) { - text.setText("0"); + text.setText(""); } - else if(".123456789".indexOf(str)>=0) { - if(first) { - text.setText(str); - } - else if(str.equals(".")&&text.getText().indexOf(".")==-1) { + else if(".0123456789".indexOf(str)!=-1) { + if(str.equals(".")&&text.getText().indexOf(".")==-1) { text.setText(text.getText()+"."); } else if(!str.equals(".")) { - text.setText(text.getText()+str); - } - first=false; - } - else { - result=Double.valueOf(text.getText()).doubleValue(); - double n; - String operator="="; - if(str.equals("+")) { - n=new Double(text.getText()).doubleValue(); - result+=n; - } - else if(str.equals("-")) { - n=new Double(text.getText()).doubleValue(); - result-=n; - } - else if(str.equals("×")) { - n=new Double(text.getText()).doubleValue(); - result*=n; - } - else if(str.equals("÷")) { - n=new Double(text.getText()).doubleValue(); - if(n==0) { - text.setText("除数不能为0"); - correct=false; - } - else - result/=n; - } - else if(str.equals("|x|")) { - n=new Double(text.getText()).doubleValue(); - result=Math.abs(n); - } - else if(str.equals("1/x")) { - if(result==0) { - text.setText("零没有倒数"); - correct=false; - } + if(text.getText()!="0") + text.setText(text.getText()+str); else - result=1/result; + text.setText(str); } - else if(str.equals("%")) { - n=new Double(text.getText()).doubleValue(); - result%=n; + } + else if(str.equals("+")||str.equals("-")||str.equals("×")||str.equals("÷")||str.equals("%")){ + operator=str; + first=text.getText(); + text.setText(""); } - else if(str.equals("x^2")) { - n=new Double(text.getText()).doubleValue(); - result=n*n; + else if(str.equals("=")) { + double n1=Double.valueOf(first); + double n2=Double.valueOf(text.getText()); + switch(operator) { + case"+":result=n1+n2; + break; + case"-":result=n1-n2; + break; + case"×":result=n1*n2; + break; + case"÷":if(n2!=0) { + result=n1/n2; + } + break; + case"%":result=n1%n2; + break; } - else if(str.equals("PI")) { - text.setText(String.valueOf(3.14159265753)); + text.setText(result.toString()); + } + else if(str.equals("|x|")||str.equals("1/x")||str.equals("x^2")||str.equals("+/-")) { + operator=str; + first=text.getText(); + text.setText(""); + switch(operator) { + case"1/x":if(first!="0") { + result=1/Double.valueOf(first); } - else if(str.equals("=")) { - if(correct) - text.setText(String.valueOf(result)); - } - correct=true; - first=true; - } - + break; + case"|x|":result=Math.abs(Double.valueOf(first)); + break; + case"x^2":result=Double.valueOf(first)*Double.valueOf(first); + break; + case"+/-":result=Double.valueOf(first)*(-1); + break; + } + text.setText(result.toString()); + } + else if(str.equals("PI")) { + text.setText(String.valueOf(3.14159265)); + } } } + + + -- Gitee From 22bb1a089245e97f585aaeffc258f839b6260e72 Mon Sep 17 00:00:00 2001 From: ma Date: Wed, 18 May 2022 23:02:57 +0800 Subject: [PATCH 06/13] =?UTF-8?q?=E5=AF=B9Standard=E7=B1=BB=E8=BF=9B?= =?UTF-8?q?=E8=A1=8C=E4=BA=86=E5=8F=98=E9=87=8F=E7=9A=84=E6=94=B9=E8=BF=9B?= =?UTF-8?q?=EF=BC=9B=E5=AE=8C=E6=88=90=E4=BA=86=E7=A7=91=E5=AD=A6=E8=AE=A1?= =?UTF-8?q?=E7=AE=97=E5=99=A8=E4=BB=A5=E5=8F=8A=E5=92=8C=E6=A0=87=E5=87=86?= =?UTF-8?q?=E8=AE=A1=E7=AE=97=E5=99=A8=E7=9A=84=E8=BD=AC=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/Science.java | 174 ++++++++++++++++++++++- src/java2022spring/ScienceMainClass.java | 12 ++ src/java2022spring/Standard.java | 43 ++++-- 3 files changed, 214 insertions(+), 15 deletions(-) create mode 100644 src/java2022spring/ScienceMainClass.java diff --git a/src/java2022spring/Science.java b/src/java2022spring/Science.java index b6cae43..fab78ec 100644 --- a/src/java2022spring/Science.java +++ b/src/java2022spring/Science.java @@ -12,10 +12,176 @@ public class Science extends JFrame implements ActionListener{ String first=null; String operator=null; Double result; - + Science(){ + this.setTitle("科学计算器"); + this.setBackground(Color.white); + this.setSize(500,500); + this.setLocation(100, 100); + menubar=new JMenuBar(); + setJMenuBar(menubar); + menufunction=new JMenu("功能"); + menustandard=new JMenuItem("标准型"); + menuscience=new JMenuItem("科学型"); + menubar.add(menufunction); + menufunction.add(menustandard); + menufunction.add(menuscience); + text.setHorizontalAlignment(JTextField.RIGHT); + text.setBackground(Color.LIGHT_GRAY); + text.setFont(new Font("Arial",Font.BOLD,35)); + JPanel panel=new JPanel(); + panel.setLayout(new GridLayout(9,4,4,4)); + for(int i=0;i0) { + fieldText=fieldText.substring(0,i-1); + if(fieldText.length()==0) { + text.setText(""); + } + else { + text.setText(fieldText); + } + } + } + else if(str.equals("C")) { + text.setText(""); + } + else if(".0123456789".indexOf(str)!=-1) { + if(str.equals(".")&&text.getText().indexOf(".")==-1) { + text.setText(text.getText()+"."); + } + else if(!str.equals(".")) { + if(text.getText()!="0") + text.setText(text.getText()+str); + else + text.setText(str); + } + } + else if(str.equals("+")||str.equals("-")||str.equals("×")||str.equals("÷")||str.equals("%")||str.equals("x^y")){ + operator=str; + first=text.getText(); + text.setText(""); + } + else if(str.equals("=")) { + double n1=Double.valueOf(first); + double n2=Double.valueOf(text.getText()); + switch(operator) { + case"+":result=n1+n2; + break; + case"-":result=n1-n2; + break; + case"×":result=n1*n2; + break; + case"÷":if(n2!=0) { + result=n1/n2; + } + break; + case"%":result=n1%n2; + break; + case"x^y":result=Math.pow(n1, n2); + } + text.setText(result.toString()); + } + else if(str.equals("|x|")||str.equals("1/x")||str.equals("x^2")||str.equals("+/-")||str.equals("x^3")||str.equals("sqrt")||str.equals("rt")||str.equals("X!")||str.equals("ln")||str.equals("lg")||str.equals("sin")||str.equals("cos")||str.equals("tan")||str.equals("e^x")) { + operator=str; + first=text.getText(); + text.setText(""); + double n=Double.valueOf(first); + switch(operator) { + case"1/x":if(first!="0") { + result=1/n; + } + break; + case"|x|":result=Math.abs(n); + break; + case"x^2":result=n*n; + break; + case"+/-":result=n*(-1); + break; + case"x^3":result=n*n*n; + break; + case"sqrt":result=Math.sqrt(n); + break; + case"rt":result=n*57.3; + break; + case"ln":result=Math.log(n); + break; + case"lg":result=Math.log10(n); + break; + case"sin":result=Math.sin(n); + break; + case"cos":result=Math.cos(n); + break; + case"tan":result=Math.tan(n); + break; + case"e^x":result=Math.exp(n); + break; + case"X!":{ + double t=1; + for(int m=1;m<=n;m++) { + t=t*m; + result=t; + } + } + } + text.setText(result.toString()); + } + else if(str.equals("PI")) { + text.setText(String.valueOf(3.14159265)); + } + else if(str.equals("e")) { + text.setText(String.valueOf(2.7182818)); + } } -} + } + diff --git a/src/java2022spring/ScienceMainClass.java b/src/java2022spring/ScienceMainClass.java new file mode 100644 index 0000000..f5f8337 --- /dev/null +++ b/src/java2022spring/ScienceMainClass.java @@ -0,0 +1,12 @@ +package java2022spring; +import java.awt.*; +import javax.swing.*; +public class ScienceMainClass { + public static void main(String[] args) { + Science calculator=new Science(); + calculator.setVisible(true); + calculator.setTitle("科学型"); + calculator.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); + } + +} diff --git a/src/java2022spring/Standard.java b/src/java2022spring/Standard.java index f3bc5e1..461e5cf 100644 --- a/src/java2022spring/Standard.java +++ b/src/java2022spring/Standard.java @@ -6,8 +6,8 @@ public class Standard extends JFrame implements ActionListener { private final String[] KEYS= {"+/-","PI","C","BACK","1/x","x^2","|x|","÷","7","8","9","×","4","5","6","-","1","2","3","+","%","0",".","="}; private JButton keys[]=new JButton[KEYS.length]; JMenuBar menubar; - JMenu menufunction; - JMenuItem menustandard,menuscience; + JMenu menuFunction,menuCheck; + JMenuItem menustandard,menuscience,copy,stick; JTextField text=new JTextField(); String first=null; String operator=null; @@ -18,12 +18,19 @@ public class Standard extends JFrame implements ActionListener { this.setSize(500,500); this.setLocation(100, 100); menubar=new JMenuBar(); - menufunction=new JMenu("功能"); + setJMenuBar(menubar); + menuFunction=new JMenu("功能"); + menuCheck=new JMenu("查看"); menustandard=new JMenuItem("标准型"); menuscience=new JMenuItem("科学型"); - menubar.add(menufunction); - menufunction.add(menustandard); - menufunction.add(menuscience); + copy=new JMenuItem("复制"); + stick=new JMenuItem("粘贴"); + menubar.add(menuFunction); + menubar.add(menuCheck); + menuFunction.add(menustandard); + menuFunction.add(menuscience); + menuCheck.add(copy); + menuCheck.add(stick); text.setHorizontalAlignment(JTextField.RIGHT); text.setBackground(Color.LIGHT_GRAY); text.setFont(new Font("Arial",Font.BOLD,35)); @@ -67,7 +74,20 @@ public class Standard extends JFrame implements ActionListener { pNorth.add(text,BorderLayout.CENTER); this.setLayout(new BorderLayout(10,10)); this.add(pNorth,BorderLayout.NORTH); - this.add(Panel,BorderLayout.CENTER); + this.add(Panel,BorderLayout.CENTER); + menuscience.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + Science exchange = new Science(); + exchange.setVisible(true); + } + } + ); + copy.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + text.copy(); + } + } + ); } public void actionPerformed(ActionEvent e) { String str=e.getActionCommand(); @@ -126,16 +146,17 @@ public class Standard extends JFrame implements ActionListener { operator=str; first=text.getText(); text.setText(""); + double n=Double.valueOf(first); switch(operator) { case"1/x":if(first!="0") { - result=1/Double.valueOf(first); + result=1/n; } break; - case"|x|":result=Math.abs(Double.valueOf(first)); + case"|x|":result=Math.abs(n); break; - case"x^2":result=Double.valueOf(first)*Double.valueOf(first); + case"x^2":result=n*n; break; - case"+/-":result=Double.valueOf(first)*(-1); + case"+/-":result=n*(-1); break; } text.setText(result.toString()); -- Gitee From 2b2dc90af5467ac5da180bd4e15348323fcdf05c Mon Sep 17 00:00:00 2001 From: ma Date: Fri, 20 May 2022 23:37:59 +0800 Subject: [PATCH 07/13] =?UTF-8?q?=E5=9C=A8=E6=A0=87=E5=87=86=E8=AE=A1?= =?UTF-8?q?=E7=AE=97=E5=99=A8=E7=95=8C=E9=9D=A2=E6=B7=BB=E5=8A=A0=E5=A4=8D?= =?UTF-8?q?=E5=88=B6=E5=92=8C=E7=B2=98=E8=B4=B4=E7=9A=84=E8=8F=9C=E5=8D=95?= =?UTF-8?q?=E6=A0=8F=E3=80=81=E5=8A=9F=E8=83=BD=E5=92=8C=E5=BF=AB=E6=8D=B7?= =?UTF-8?q?=E9=94=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/Standard.java | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/java2022spring/Standard.java b/src/java2022spring/Standard.java index 461e5cf..3a2f8f7 100644 --- a/src/java2022spring/Standard.java +++ b/src/java2022spring/Standard.java @@ -23,14 +23,16 @@ public class Standard extends JFrame implements ActionListener { menuCheck=new JMenu("查看"); menustandard=new JMenuItem("标准型"); menuscience=new JMenuItem("科学型"); - copy=new JMenuItem("复制"); - stick=new JMenuItem("粘贴"); + copy=new JMenuItem("复制 Ctrl+C"); + stick=new JMenuItem("粘贴 Ctrl+V"); menubar.add(menuFunction); menubar.add(menuCheck); menuFunction.add(menustandard); menuFunction.add(menuscience); menuCheck.add(copy); menuCheck.add(stick); + copy.setAccelerator(KeyStroke.getKeyStroke("Ctrl+C")); + stick.setAccelerator(KeyStroke.getKeyStroke("Ctrl+V")); text.setHorizontalAlignment(JTextField.RIGHT); text.setBackground(Color.LIGHT_GRAY); text.setFont(new Font("Arial",Font.BOLD,35)); @@ -82,12 +84,8 @@ public class Standard extends JFrame implements ActionListener { } } ); - copy.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - text.copy(); - } - } - ); + copy.addActionListener(this); + stick.addActionListener(this); } public void actionPerformed(ActionEvent e) { String str=e.getActionCommand(); @@ -164,6 +162,10 @@ public class Standard extends JFrame implements ActionListener { else if(str.equals("PI")) { text.setText(String.valueOf(3.14159265)); } + else if(str.equals("复制 Ctrl+C")) + text.copy(); + else if(str.equals("粘贴 Ctrl+V")) + text.paste(); } } -- Gitee From 20d8a8ff52a775e06fb5e527e03c2786b1c5273f Mon Sep 17 00:00:00 2001 From: ma Date: Tue, 24 May 2022 23:21:40 +0800 Subject: [PATCH 08/13] =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=8C=89=E9=92=AE?= =?UTF-8?q?=E9=97=B4=E8=B7=9D=E5=8F=8A=E9=A2=9C=E8=89=B2=EF=BC=8C=E4=BD=BF?= =?UTF-8?q?=E6=95=B4=E4=BD=93=E6=9B=B4=E7=BE=8E=E8=A7=82=EF=BC=9B=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E9=BC=A0=E6=A0=87=E5=8F=B3=E9=94=AE=E8=B7=B3=E5=87=BA?= =?UTF-8?q?=E7=9A=84=E9=9D=A2=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/Science.java | 125 +++++++++++++++++++++++-------- src/java2022spring/Standard.java | 119 ++++++++++++++++++++--------- 2 files changed, 178 insertions(+), 66 deletions(-) diff --git a/src/java2022spring/Science.java b/src/java2022spring/Science.java index fab78ec..05b77e9 100644 --- a/src/java2022spring/Science.java +++ b/src/java2022spring/Science.java @@ -3,15 +3,16 @@ import java.awt.event.*; import java.awt.*; import javax.swing.*; public class Science extends JFrame implements ActionListener{ - private final String[] KEYS = { "+/-","PI","C","BACK","x^3","x^y","sqrt","rt","X!","ln","lg","e","sin","cos","tan","e^x","1/x","x^2","|x|","÷","7","8","9","×","4","5","6","-","1","2","3","+","%","0",".","="}; + private final String[] KEYS = { "%","PI","C","BACK","x^3","x^y","sqrt","rt","X!","ln","lg","e","sin","cos","tan","e^x","1/x","x^2","|x|","÷","7","8","9","×","4","5","6","-","1","2","3","+","+/-","0",".","="}; private JButton keys[]=new JButton[KEYS.length]; JMenuBar menubar; - JMenu menufunction; - JMenuItem menustandard,menuscience; + JMenu menuFunction,menuCheck; + JMenuItem menustandard,menuscience,copy,paste,copypop,pastepop; JTextField text=new JTextField(); String first=null; String operator=null; Double result; + JPopupMenu pMenu=new JPopupMenu(); Science(){ this.setTitle("科学计算器"); this.setBackground(Color.white); @@ -19,56 +20,94 @@ public class Science extends JFrame implements ActionListener{ this.setLocation(100, 100); menubar=new JMenuBar(); setJMenuBar(menubar); - menufunction=new JMenu("功能"); + menuFunction=new JMenu("功能"); + menuCheck=new JMenu("查看"); menustandard=new JMenuItem("标准型"); menuscience=new JMenuItem("科学型"); - menubar.add(menufunction); - menufunction.add(menustandard); - menufunction.add(menuscience); + copy=new JMenuItem("复制 Ctrl+C"); + paste=new JMenuItem("粘贴 Ctrl+V"); + copypop=new JMenuItem("复制"); + pastepop=new JMenuItem("粘贴"); + pMenu.setBackground(new Color(230,230,230)); + copypop.setBackground(new Color(230,230,230)); + pastepop.setBackground(new Color(230,230,230)); + menuFunction.setFont(new Font("宋体",Font.BOLD,14)); + menuCheck.setFont(new Font("宋体",Font.BOLD,14)); + menustandard.setFont(new Font("微软雅黑",Font.PLAIN,14)); + menuscience.setFont(new Font("微软雅黑",Font.PLAIN,14)); + copy.setFont(new Font("微软雅黑",Font.PLAIN,14)); + paste.setFont(new Font("微软雅黑",Font.PLAIN,14)); + copypop.setFont(new Font("微软雅黑",Font.PLAIN,16)); + pastepop.setFont(new Font("微软雅黑",Font.PLAIN,16)); + menubar.add(menuFunction); + menubar.add(menuCheck); + menuFunction.add(menustandard); + menuFunction.add(menuscience); + menuCheck.add(copy); + menuCheck.add(paste); + pMenu.add(copypop); + pMenu.add(pastepop); + copy.setAccelerator(KeyStroke.getKeyStroke("Ctrl+C")); + paste.setAccelerator(KeyStroke.getKeyStroke("Ctrl+V")); text.setHorizontalAlignment(JTextField.RIGHT); - text.setBackground(Color.LIGHT_GRAY); + text.setBackground(new Color(200,200,200)); text.setFont(new Font("Arial",Font.BOLD,35)); + text.setBorder(null); JPanel panel=new JPanel(); - panel.setLayout(new GridLayout(9,4,4,4)); + panel.setLayout(new GridLayout(9,4,2,2)); + panel.setBackground(new Color(181,181,181)); for(int i=0;i Date: Fri, 27 May 2022 23:20:48 +0800 Subject: [PATCH 09/13] =?UTF-8?q?=E5=9C=A8=E6=99=AE=E9=80=9A=E8=AE=A1?= =?UTF-8?q?=E7=AE=97=E5=99=A8=E4=B8=AD=E5=8A=A0=E5=85=A5=E4=BA=86=E6=97=A5?= =?UTF-8?q?=E6=9C=9F=E8=AE=A1=E7=AE=97=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/Date.java | 231 ++++++++++++++++++++++ src/java2022spring/DateMain.java | 12 ++ src/java2022spring/Science.java | 23 ++- src/java2022spring/ScienceMainClass.java | 1 - src/java2022spring/Standard.java | 22 ++- src/java2022spring/StandardMainClass.java | 1 - 6 files changed, 275 insertions(+), 15 deletions(-) create mode 100644 src/java2022spring/Date.java create mode 100644 src/java2022spring/DateMain.java diff --git a/src/java2022spring/Date.java b/src/java2022spring/Date.java new file mode 100644 index 0000000..414183b --- /dev/null +++ b/src/java2022spring/Date.java @@ -0,0 +1,231 @@ +package java2022spring; +import java.awt.*; +import java.awt.event.*; +import javax.swing.*; +import javax.swing.border.Border; +import java.util.*; +public class Date extends JFrame implements ActionListener{ + JMenuBar menubar; + JMenu menuFunction,menuCheck; + JMenuItem menustandard,menuscience,menuDate,copy,paste,copypop,pastepop; + JTextField[] column1={new JTextField("请输入开始日期"),new JTextField(5),new JTextField("年"),new JTextField(3),new JTextField("月"),new JTextField(3),new JTextField("日")}; + JTextField[] column2={new JTextField("请输入截止日期"),new JTextField(5),new JTextField("年"),new JTextField(3),new JTextField("月"),new JTextField(3),new JTextField("日")}; + JTextField[] column3={new JTextField("两个日期相差:"),new JTextField(10)}; + JButton button=new JButton("计算"); + JPopupMenu pMenu=new JPopupMenu(); + Border border1 = BorderFactory.createLineBorder(Color.black); + Date(){ + this.getContentPane().setBackground(new Color(250,250,250)); + this.setTitle("日期计算器"); + this.setSize(400, 175); + this.setResizable(false); + this.setLocation(500, 200); + menubar=new JMenuBar(); + setJMenuBar(menubar); + menuFunction=new JMenu("功能"); + menuCheck=new JMenu("查看"); + menustandard=new JMenuItem("标准型"); + menuscience=new JMenuItem("科学型"); + menuDate=new JMenuItem("日期计算器"); + copy=new JMenuItem("复制 Ctrl+C"); + paste=new JMenuItem("粘贴 Ctrl+V"); + copypop=new JMenuItem("复制"); + pastepop=new JMenuItem("粘贴"); + button.setBackground(new Color(150,200,250)); + column3[1].setBackground(Color.white); + for(int i=0;i Date: Mon, 30 May 2022 19:06:26 +0800 Subject: [PATCH 10/13] =?UTF-8?q?1.=E6=94=B9=E8=BF=9B=E4=BA=86=E4=B9=8B?= =?UTF-8?q?=E5=89=8D=E8=AE=A1=E7=AE=97=E5=99=A8=E4=B8=8D=E8=83=BD=E8=BF=9E?= =?UTF-8?q?=E7=BB=AD=E8=AE=A1=E7=AE=97=E7=9A=84bug=202.=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E4=BA=86MC=20MR=20MS=20M+=E7=9A=84=E5=8A=9F=E8=83=BD=203.?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86=E8=BF=9B=E5=88=B6=E8=BD=AC=E6=8D=A2?= =?UTF-8?q?=E4=BB=A5=E5=8F=8A=E5=B8=AE=E5=8A=A9=E7=AA=97=E5=8F=A3=EF=BC=88?= =?UTF-8?q?=E4=BD=86=E5=8F=AA=E8=83=BD=E5=AE=9E=E7=8E=B0=E6=AD=A3=E6=95=B4?= =?UTF-8?q?=E6=95=B0=E7=9A=84=E8=BF=9B=E5=88=B6=E8=BD=AC=E6=8D=A2=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/DateMain.java | 4 +- src/java2022spring/Description.java | 35 ++++ src/java2022spring/Science.java | 175 ++++++++++++------- src/java2022spring/ScienceMainClass.java | 1 - src/java2022spring/Standard.java | 195 ++++++++++++++-------- src/java2022spring/StandardMainClass.java | 1 - 6 files changed, 277 insertions(+), 134 deletions(-) create mode 100644 src/java2022spring/Description.java diff --git a/src/java2022spring/DateMain.java b/src/java2022spring/DateMain.java index ed26c49..48af205 100644 --- a/src/java2022spring/DateMain.java +++ b/src/java2022spring/DateMain.java @@ -1,7 +1,5 @@ package java2022spring; - -import javax.swing.JFrame; - +import javax.swing.*; public class DateMain { public static void main(String[] args) { Date calculator=new Date(); diff --git a/src/java2022spring/Description.java b/src/java2022spring/Description.java new file mode 100644 index 0000000..16bde2d --- /dev/null +++ b/src/java2022spring/Description.java @@ -0,0 +1,35 @@ +package java2022spring; + +import java.awt.*; + +import javax.swing.*; + +public class Description extends JFrame{ + JTextArea text=new JTextArea(" When using this calculator for a base conversion, only positive integers can be entered. The decimal fraction and negative number are invalid."); + JPanel panel=new JPanel(); + Description(){ + this.setTitle("相关说明"); + this.setBackground(Color.white); + this.setSize(450,100); + this.setLocation(500, 200); + this.setResizable(false); + text.setLineWrap(true); + text.setWrapStyleWord(true); + text.setBackground(new Color(235,235,235)); + text.setFont(new Font("Arial",Font.BOLD,16)); + text.setBorder(null); + text.setEditable(false); + panel.setLayout(new BorderLayout()); + panel.add(text,BorderLayout.CENTER); + this.setLayout(new BorderLayout()); + this.add(panel,BorderLayout.CENTER); + + + } + public static void main(String[] args) { + Description des=new Description(); + des.setVisible(true); + des.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + } + +} diff --git a/src/java2022spring/Science.java b/src/java2022spring/Science.java index a0e536e..bb5c7f3 100644 --- a/src/java2022spring/Science.java +++ b/src/java2022spring/Science.java @@ -3,16 +3,18 @@ import java.awt.event.*; import java.awt.*; import javax.swing.*; public class Science extends JFrame implements ActionListener{ - private final String[] KEYS = { "%","PI","C","BACK","x^3","x^y","sqrt","rt","X!","ln","lg","e","sin","cos","tan","e^x","1/x","x^2","|x|","÷","7","8","9","×","4","5","6","-","1","2","3","+","+/-","0",".","="}; + private final String[] KEYS = {"MC","MR","MS","M+", "%","PI","C","BACK","x^3","x^y","sqrt","rt","X!","ln","lg","e","sin","cos","tan","e^x","1/x","x^2","|x|","÷","7","8","9","×","4","5","6","-","1","2","3","+","+/-","0",".","="}; private JButton keys[]=new JButton[KEYS.length]; JMenuBar menubar; - JMenu menuFunction,menuCheck; - JMenuItem menustandard,menuscience,menuDate,copy,paste,copypop,pastepop; - JTextField text=new JTextField(); - String first=null; - String operator=null; + JMenu menuFunction,menuOption,menuHelp; + JMenuItem menustandard,menuscience,menuDate,copypop,pastepop,bin,oct,hex,description; + JTextField text=new JTextField("0"); + String operator="="; Double result; + private boolean first = true; JPopupMenu pMenu=new JPopupMenu(); + String storage=new String(); + Boolean start=false; Science(){ this.setTitle("科学计算器"); this.setSize(500,500); @@ -20,54 +22,63 @@ public class Science extends JFrame implements ActionListener{ menubar=new JMenuBar(); setJMenuBar(menubar); menuFunction=new JMenu("功能"); - menuCheck=new JMenu("查看"); + menuOption=new JMenu("选项"); + menuHelp=new JMenu("帮助"); menustandard=new JMenuItem("标准型"); menuscience=new JMenuItem("科学型"); menuDate=new JMenuItem("日期计算器"); - copy=new JMenuItem("复制 Ctrl+C"); - paste=new JMenuItem("粘贴 Ctrl+V"); - copypop=new JMenuItem("复制"); - pastepop=new JMenuItem("粘贴"); + copypop=new JMenuItem("复制 Ctrl+C"); + pastepop=new JMenuItem("粘贴 Ctrl+V"); + bin=new JMenuItem("二进制"); + oct=new JMenuItem("八进制"); + hex=new JMenuItem("十六进制"); + description=new JMenuItem("说明"); pMenu.setBackground(new Color(230,230,230)); copypop.setBackground(new Color(230,230,230)); pastepop.setBackground(new Color(230,230,230)); menuFunction.setFont(new Font("宋体",Font.BOLD,14)); - menuCheck.setFont(new Font("宋体",Font.BOLD,14)); + menuOption.setFont(new Font("宋体",Font.BOLD,14)); + menuHelp.setFont(new Font("宋体",Font.BOLD,14)); menustandard.setFont(new Font("微软雅黑",Font.PLAIN,14)); menuscience.setFont(new Font("微软雅黑",Font.PLAIN,14)); menuDate.setFont(new Font("微软雅黑",Font.PLAIN,14)); - copy.setFont(new Font("微软雅黑",Font.PLAIN,14)); - paste.setFont(new Font("微软雅黑",Font.PLAIN,14)); + bin.setFont(new Font("微软雅黑",Font.PLAIN,14)); + oct.setFont(new Font("微软雅黑",Font.PLAIN,14)); + hex.setFont(new Font("微软雅黑",Font.PLAIN,14)); + description.setFont(new Font("微软雅黑",Font.PLAIN,14)); copypop.setFont(new Font("宋体",Font.BOLD,16)); pastepop.setFont(new Font("宋体",Font.BOLD,16)); menubar.add(menuFunction); - menubar.add(menuCheck); + menubar.add(menuOption); + menubar.add(menuHelp); menuFunction.add(menustandard); menuFunction.add(menuscience); menuFunction.add(menuDate); - menuCheck.add(copy); - menuCheck.add(paste); + menuOption.add(bin); + menuOption.add(oct); + menuOption.add(hex); + menuHelp.add(description); pMenu.add(copypop); pMenu.add(pastepop); - copy.setAccelerator(KeyStroke.getKeyStroke("Ctrl+C")); - paste.setAccelerator(KeyStroke.getKeyStroke("Ctrl+V")); + copypop.setAccelerator(KeyStroke.getKeyStroke("Ctrl+C")); + pastepop.setAccelerator(KeyStroke.getKeyStroke("Ctrl+V")); text.setHorizontalAlignment(JTextField.RIGHT); text.setBackground(new Color(210,210,210)); text.setFont(new Font("Arial",Font.BOLD,35)); text.setBorder(null); JPanel panel=new JPanel(); - panel.setLayout(new GridLayout(9,4,2,2)); + panel.setLayout(new GridLayout(10,4,2,2)); panel.setBackground(new Color(230,230,230)); for(int i=0;i0) { fieldText=fieldText.substring(0,i-1); if(fieldText.length()==0) { - text.setText(""); + text.setText("0"); + first = true; + operator = "="; } else { text.setText(fieldText); @@ -166,51 +195,56 @@ public class Science extends JFrame implements ActionListener{ } } else if(str.equals("C")) { - text.setText(""); + text.setText("0"); + first = true; + operator = "="; } else if(".0123456789".indexOf(str)!=-1) { - if(str.equals(".")&&text.getText().indexOf(".")==-1) { + if (first==true) { + if(str!="."){ + text.setText(str); + } + else if((str.equals("."))&&(text.getText().indexOf(".")==-1)){ + text.setText(text.getText()+"."); + } + } + else if((str.equals("."))&&(text.getText().indexOf(".")==-1)){ text.setText(text.getText()+"."); } else if(!str.equals(".")) { - if(text.getText()!="0") text.setText(text.getText()+str); - else - text.setText(str); } + first=false; } - else if(str.equals("+")||str.equals("-")||str.equals("×")||str.equals("÷")||str.equals("%")||str.equals("x^y")){ - operator=str; - first=text.getText(); - text.setText(""); - } - else if(str.equals("=")) { - double n1=Double.valueOf(first); - double n2=Double.valueOf(text.getText()); + else if(str.equals("+")||str.equals("-")||str.equals("×")||str.equals("÷")||str.equals("%")||str.equals("=")||str.equals("x^y")){ + double resultOther =Double.valueOf(text.getText()).doubleValue(); switch(operator) { - case"+":result=n1+n2; + case"+":result+=resultOther; break; - case"-":result=n1-n2; + case"-":result-=resultOther; break; - case"×":result=n1*n2; + case"×":result*=resultOther; break; - case"÷":if(n2!=0) { - result=n1/n2; + case"÷":if(resultOther!=0) { + result/=resultOther; } break; - case"%":result=n1%n2; + case"%":result%=resultOther; + break; + case"=":result=resultOther; + break; + case"x^y":result=Math.pow(result, resultOther); break; - case"x^y":result=Math.pow(n1, n2); } - text.setText(result.toString()); + operator = str; + first = true; + text.setText(String.valueOf(result)); } else if(str.equals("|x|")||str.equals("1/x")||str.equals("x^2")||str.equals("+/-")||str.equals("x^3")||str.equals("sqrt")||str.equals("rt")||str.equals("X!")||str.equals("ln")||str.equals("lg")||str.equals("sin")||str.equals("cos")||str.equals("tan")||str.equals("e^x")) { operator=str; - first=text.getText(); - text.setText(""); - double n=Double.valueOf(first); + double n=Double.valueOf(text.getText()); switch(operator) { - case"1/x":if(first!="0") { + case"1/x":if(n!=0) { result=1/n; } break; @@ -245,8 +279,10 @@ public class Science extends JFrame implements ActionListener{ result=t; } } + break; } - text.setText(result.toString()); + first = true; + text.setText(String.valueOf(result)); } else if(str.equals("PI")) { text.setText(String.valueOf(3.14159265)); @@ -254,6 +290,25 @@ public class Science extends JFrame implements ActionListener{ else if(str.equals("e")) { text.setText(String.valueOf(2.7182818)); } + else if(str.equals("MC")) { + storage="null"; + } + else if(str.equals("MR")) { + if(start==true) { + text.setText(storage); + } + } + else if(str.equals("MS")) { + start=true; + storage=text.getText(); + } + else if(str.equals("M+")) { + start=true; + double n1=Double.valueOf(text.getText()); + double n2=Double.valueOf(storage); + n2=n1+n2; + storage=String.valueOf(n2); + } } } diff --git a/src/java2022spring/ScienceMainClass.java b/src/java2022spring/ScienceMainClass.java index ec53dda..d0e2c50 100644 --- a/src/java2022spring/ScienceMainClass.java +++ b/src/java2022spring/ScienceMainClass.java @@ -1,5 +1,4 @@ package java2022spring; -import java.awt.*; import javax.swing.*; public class ScienceMainClass { public static void main(String[] args) { diff --git a/src/java2022spring/Standard.java b/src/java2022spring/Standard.java index e00d21b..ac8f813 100644 --- a/src/java2022spring/Standard.java +++ b/src/java2022spring/Standard.java @@ -3,16 +3,18 @@ import java.awt.event.*; import java.awt.*; import javax.swing.*; public class Standard extends JFrame implements ActionListener { - private final String[] KEYS= {"%","PI","C","BACK","1/x","x^2","|x|","÷","7","8","9","×","4","5","6","-","1","2","3","+","+/-","0",".","="}; + private final String[] KEYS= {"MC","MR","MS","M+","%","PI","C","BACK","1/x","x^2","|x|","÷","7","8","9","×","4","5","6","-","1","2","3","+","+/-","0",".","="}; private JButton keys[]=new JButton[KEYS.length]; JMenuBar menubar; - JMenu menuFunction,menuCheck; - JMenuItem menustandard,menuscience,menuDate,copy,paste,copypop,pastepop; - JTextField text=new JTextField(); - String first=null; - String operator=null; - Double result; + JMenu menuFunction,menuOption,menuHelp; + JMenuItem menustandard,menuscience,menuDate,copypop,pastepop,bin,oct,hex,description; + JTextField text=new JTextField("0"); + String operator="="; + double result; + private boolean first = true; JPopupMenu pMenu=new JPopupMenu(); + String storage=new String(); + Boolean start=false; Standard(){ this.setTitle("标准计算器"); this.setBackground(Color.white); @@ -21,54 +23,63 @@ public class Standard extends JFrame implements ActionListener { menubar=new JMenuBar(); setJMenuBar(menubar); menuFunction=new JMenu("功能"); - menuCheck=new JMenu("查看"); + menuOption=new JMenu("选项"); + menuHelp=new JMenu("帮助"); menustandard=new JMenuItem("标准型"); menuscience=new JMenuItem("科学型"); menuDate=new JMenuItem("日期计算器"); - copy=new JMenuItem("复制 Ctrl+C"); - paste=new JMenuItem("粘贴 Ctrl+V"); - copypop=new JMenuItem("复制"); - pastepop=new JMenuItem("粘贴"); + copypop=new JMenuItem("复制 Ctrl+C"); + pastepop=new JMenuItem("粘贴 Ctrl+C"); + bin=new JMenuItem("二进制"); + oct=new JMenuItem("八进制"); + hex=new JMenuItem("十六进制"); + description=new JMenuItem("说明"); pMenu.setBackground(new Color(230,230,230)); copypop.setBackground(new Color(230,230,230)); pastepop.setBackground(new Color(230,230,230)); menuFunction.setFont(new Font("宋体",Font.BOLD,14)); - menuCheck.setFont(new Font("宋体",Font.BOLD,14)); + menuOption.setFont(new Font("宋体",Font.BOLD,14)); + menuHelp.setFont(new Font("宋体",Font.BOLD,14)); menustandard.setFont(new Font("微软雅黑",Font.PLAIN,14)); menuscience.setFont(new Font("微软雅黑",Font.PLAIN,14)); menuDate.setFont(new Font("微软雅黑",Font.PLAIN,14)); - copy.setFont(new Font("微软雅黑",Font.PLAIN,14)); - paste.setFont(new Font("微软雅黑",Font.PLAIN,14)); + bin.setFont(new Font("微软雅黑",Font.PLAIN,14)); + oct.setFont(new Font("微软雅黑",Font.PLAIN,14)); + hex.setFont(new Font("微软雅黑",Font.PLAIN,14)); + description.setFont(new Font("微软雅黑",Font.PLAIN,14)); copypop.setFont(new Font("宋体",Font.BOLD,16)); pastepop.setFont(new Font("宋体",Font.BOLD,16)); menubar.add(menuFunction); - menubar.add(menuCheck); + menubar.add(menuOption); + menubar.add(menuHelp); menuFunction.add(menustandard); menuFunction.add(menuscience); menuFunction.add(menuDate); - menuCheck.add(copy); - menuCheck.add(paste); + menuOption.add(bin); + menuOption.add(oct); + menuOption.add(hex); + menuHelp.add(description); pMenu.add(copypop); pMenu.add(pastepop); - copy.setAccelerator(KeyStroke.getKeyStroke("Ctrl+C")); - paste.setAccelerator(KeyStroke.getKeyStroke("Ctrl+V")); + copypop.setAccelerator(KeyStroke.getKeyStroke("Ctrl+C")); + pastepop.setAccelerator(KeyStroke.getKeyStroke("Ctrl+V")); text.setHorizontalAlignment(JTextField.RIGHT); text.setBackground(new Color(210,210,210)); text.setFont(new Font("Arial",Font.BOLD,35)); text.setBorder(null); JPanel panel=new JPanel(); - panel.setLayout(new GridLayout(6,4,2,2)); + panel.setLayout(new GridLayout(7,4,2,2)); panel.setBackground(new Color(230,230,230)); for(int i=0;i0) { fieldText=fieldText.substring(0,i-1); if(fieldText.length()==0) { - text.setText(""); + text.setText("0"); + first = true; + operator = "="; } else { text.setText(fieldText); @@ -166,50 +195,57 @@ public class Standard extends JFrame implements ActionListener { } } else if(str.equals("C")) { - text.setText(""); + text.setText("0"); + first = true; + operator = "="; } else if(".0123456789".indexOf(str)!=-1) { - if(str.equals(".")&&text.getText().indexOf(".")==-1) { - text.setText(text.getText()+"."); - } + if (first==true) { + if(str!=".") { + text.setText(str); + } + else if((str.equals("."))&&(text.getText().indexOf(".")==-1)){ + text.setText(text.getText()+"."); + } + } + else if((str.equals("."))&&(text.getText().indexOf(".")==-1)){ + text.setText(text.getText()+"."); + } else if(!str.equals(".")) { - if(text.getText()!="0") - text.setText(text.getText()+str); - else - text.setText(str); - } + if(text.getText()!="0") + text.setText(text.getText()+str); + else + text.setText(str); + } + first=false; } - else if(str.equals("+")||str.equals("-")||str.equals("×")||str.equals("÷")||str.equals("%")){ - operator=str; - first=text.getText(); - text.setText(""); - } - else if(str.equals("=")) { - double n1=Double.valueOf(first); - double n2=Double.valueOf(text.getText()); + else if(str.equals("+")||str.equals("-")||str.equals("×")||str.equals("÷")||str.equals("%")||str.equals("=")){ + double resultOther =Double.valueOf(text.getText()).doubleValue(); switch(operator) { - case"+":result=n1+n2; + case"+":result+=resultOther; break; - case"-":result=n1-n2; + case"-":result-=resultOther; break; - case"×":result=n1*n2; + case"×":result*=resultOther; break; - case"÷":if(n2!=0) { - result=n1/n2; + case"÷":if(resultOther!=0) { + result/=resultOther; } break; - case"%":result=n1%n2; + case"%":result%=resultOther; break; + case"=":result=resultOther; + break; } - text.setText(result.toString()); + operator = str; + first = true; + text.setText(String.valueOf(result)); } - else if(str.equals("|x|")||str.equals("1/x")||str.equals("x^2")||str.equals("+/-")) { - operator=str; - first=text.getText(); - text.setText(""); - double n=Double.valueOf(first); - switch(operator) { - case"1/x":if(first!="0") { + else if(str.equals("|x|")||str.equals("1/x")||str.equals("x^2")||str.equals("+/-")) { + operator=str; + double n=Double.valueOf(text.getText()); + switch(operator) { + case"1/x":if(n!=0) { result=1/n; } break; @@ -220,13 +256,34 @@ public class Standard extends JFrame implements ActionListener { case"+/-":result=n*(-1); break; } - text.setText(result.toString()); + first = true; + text.setText(String.valueOf(result)); } else if(str.equals("PI")) { text.setText(String.valueOf(3.14159265)); } + else if(str.equals("MC")) { + storage="null"; + } + else if(str.equals("MR")) { + if(start==true) { + text.setText(storage); + } + } + else if(str.equals("MS")) { + start=true; + storage=text.getText(); + } + else if(str.equals("M+")) { + start=true; + double n1=Double.valueOf(text.getText()); + double n2=Double.valueOf(storage); + n2=n1+n2; + storage=String.valueOf(n2); + } + } } -} + diff --git a/src/java2022spring/StandardMainClass.java b/src/java2022spring/StandardMainClass.java index 9506871..4c5c4f8 100644 --- a/src/java2022spring/StandardMainClass.java +++ b/src/java2022spring/StandardMainClass.java @@ -1,5 +1,4 @@ package java2022spring; -import java.awt.*; import javax.swing.*; public class StandardMainClass { public static void main(String[] args) { -- Gitee From 1554b6640459541b926fcd1052ebb1b44e5ad4c2 Mon Sep 17 00:00:00 2001 From: ma Date: Fri, 3 Jun 2022 19:24:13 +0800 Subject: [PATCH 11/13] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=B3=A8=E9=87=8A?= =?UTF-8?q?=EF=BC=8C=E5=81=9A=E4=BA=86=E9=83=A8=E5=88=86=E6=94=B9=E5=8A=A8?= =?UTF-8?q?=EF=BC=8C=E5=AE=8C=E5=96=84=E4=BA=86=E7=A8=8B=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/Date.java | 91 +++++---------- src/java2022spring/DateMain.java | 6 +- src/java2022spring/Description.java | 22 ++-- src/java2022spring/Science.java | 129 +++++++++++----------- src/java2022spring/ScienceMainClass.java | 4 +- src/java2022spring/Standard.java | 128 +++++++++++---------- src/java2022spring/StandardMainClass.java | 4 +- 7 files changed, 170 insertions(+), 214 deletions(-) diff --git a/src/java2022spring/Date.java b/src/java2022spring/Date.java index 414183b..aadd281 100644 --- a/src/java2022spring/Date.java +++ b/src/java2022spring/Date.java @@ -6,16 +6,16 @@ import javax.swing.border.Border; import java.util.*; public class Date extends JFrame implements ActionListener{ JMenuBar menubar; - JMenu menuFunction,menuCheck; - JMenuItem menustandard,menuscience,menuDate,copy,paste,copypop,pastepop; + JMenu menuFunction; + JMenuItem menustandard,menuscience,menuDate,copy,paste; JTextField[] column1={new JTextField("请输入开始日期"),new JTextField(5),new JTextField("年"),new JTextField(3),new JTextField("月"),new JTextField(3),new JTextField("日")}; JTextField[] column2={new JTextField("请输入截止日期"),new JTextField(5),new JTextField("年"),new JTextField(3),new JTextField("月"),new JTextField(3),new JTextField("日")}; JTextField[] column3={new JTextField("两个日期相差:"),new JTextField(10)}; JButton button=new JButton("计算"); - JPopupMenu pMenu=new JPopupMenu(); - Border border1 = BorderFactory.createLineBorder(Color.black); + JPopupMenu pMenu=new JPopupMenu(); //弹出菜单 + Border border1 = BorderFactory.createLineBorder(Color.black); //设置边框颜色 Date(){ - this.getContentPane().setBackground(new Color(250,250,250)); + this.getContentPane().setBackground(new Color(250,250,250)); this.setTitle("日期计算器"); this.setSize(400, 175); this.setResizable(false); @@ -23,14 +23,11 @@ public class Date extends JFrame implements ActionListener{ menubar=new JMenuBar(); setJMenuBar(menubar); menuFunction=new JMenu("功能"); - menuCheck=new JMenu("查看"); menustandard=new JMenuItem("标准型"); menuscience=new JMenuItem("科学型"); menuDate=new JMenuItem("日期计算器"); copy=new JMenuItem("复制 Ctrl+C"); paste=new JMenuItem("粘贴 Ctrl+V"); - copypop=new JMenuItem("复制"); - pastepop=new JMenuItem("粘贴"); button.setBackground(new Color(150,200,250)); column3[1].setBackground(Color.white); for(int i=0;i0) { - fieldText=fieldText.substring(0,i-1); + fieldText=fieldText.substring(0,i-1); if(fieldText.length()==0) { text.setText("0"); first = true; @@ -194,31 +190,31 @@ public class Science extends JFrame implements ActionListener{ } } } - else if(str.equals("C")) { + else if(str.equals("C")) { //实现归0功能 text.setText("0"); first = true; operator = "="; } - else if(".0123456789".indexOf(str)!=-1) { - if (first==true) { - if(str!="."){ - text.setText(str); + else if(".0123456789".indexOf(str)!=-1) { //实现数字和小数点的输出 + if (first==true) { //若为第一个数 + if(str!="."){ //若不是小数点 + text.setText(str); //直接显示数字 } - else if((str.equals("."))&&(text.getText().indexOf(".")==-1)){ - text.setText(text.getText()+"."); + else if((str.equals("."))&&(text.getText().indexOf(".")==-1)){ //若是小数点 + text.setText(text.getText()+"."); //直接在后面加小数点 } } - else if((str.equals("."))&&(text.getText().indexOf(".")==-1)){ + else if((str.equals("."))&&(text.getText().indexOf(".")==-1)){ //不是第一个数字,输入的是小数点且文本框中没有小数点 text.setText(text.getText()+"."); } - else if(!str.equals(".")) { + else if(!str.equals(".")) { //输入的若不是小数点,则直接加数字 text.setText(text.getText()+str); } - first=false; + first=false; //输入数字后,则不再是第一个数 } else if(str.equals("+")||str.equals("-")||str.equals("×")||str.equals("÷")||str.equals("%")||str.equals("=")||str.equals("x^y")){ - double resultOther =Double.valueOf(text.getText()).doubleValue(); - switch(operator) { + double resultOther =Double.valueOf(text.getText()).doubleValue(); //获取文本框中的字符串,并转换成浮点型 + switch(operator) { //实现按键功能 case"+":result+=resultOther; break; case"-":result-=resultOther; @@ -236,12 +232,12 @@ public class Science extends JFrame implements ActionListener{ case"x^y":result=Math.pow(result, resultOther); break; } - operator = str; - first = true; - text.setText(String.valueOf(result)); + operator = str;//令操作符为所按按键功能 + first = true; //运算符后又是第一个数 + text.setText(String.valueOf(result)); //在文本框中显示结果 } else if(str.equals("|x|")||str.equals("1/x")||str.equals("x^2")||str.equals("+/-")||str.equals("x^3")||str.equals("sqrt")||str.equals("rt")||str.equals("X!")||str.equals("ln")||str.equals("lg")||str.equals("sin")||str.equals("cos")||str.equals("tan")||str.equals("e^x")) { - operator=str; + operator=str; //令操作符为所按按键功能,放置此处是因为这些按键不需要输入第二个数 double n=Double.valueOf(text.getText()); switch(operator) { case"1/x":if(n!=0) { @@ -284,31 +280,32 @@ public class Science extends JFrame implements ActionListener{ first = true; text.setText(String.valueOf(result)); } - else if(str.equals("PI")) { + else if(str.equals("PI")) { //完成PI键功能 text.setText(String.valueOf(3.14159265)); } - else if(str.equals("e")) { + else if(str.equals("e")) { //完成e键功能 text.setText(String.valueOf(2.7182818)); } - else if(str.equals("MC")) { - storage="null"; + else if(str.equals("MC")) { //完成MC功能 + storage="null"; //清空存储空间 } else if(str.equals("MR")) { - if(start==true) { - text.setText(storage); + if(start==true) { //如果存储空间启动 + text.setText(storage); //在文本框中显示存储空间的值 } } else if(str.equals("MS")) { - start=true; - storage=text.getText(); + start=true; //启动存储空间 + storage=text.getText(); //将文本框中的内容存到存储空间 } else if(str.equals("M+")) { start=true; - double n1=Double.valueOf(text.getText()); - double n2=Double.valueOf(storage); - n2=n1+n2; + double n1=Double.valueOf(text.getText()); //将文本框中的字符串转为浮点型 + double n2=Double.valueOf(storage); //将存储空间的字符串转为浮点型 + n2=n1+n2; //将文本框和存储空间的值相加 storage=String.valueOf(n2); } } } + diff --git a/src/java2022spring/ScienceMainClass.java b/src/java2022spring/ScienceMainClass.java index d0e2c50..f983d25 100644 --- a/src/java2022spring/ScienceMainClass.java +++ b/src/java2022spring/ScienceMainClass.java @@ -3,8 +3,8 @@ import javax.swing.*; public class ScienceMainClass { public static void main(String[] args) { Science calculator=new Science(); - calculator.setVisible(true); - calculator.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); + calculator.setVisible(true); //设置窗口可视 + calculator.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置窗口关闭后结束窗口所在的应用程序 } } diff --git a/src/java2022spring/Standard.java b/src/java2022spring/Standard.java index ac8f813..6a2604c 100644 --- a/src/java2022spring/Standard.java +++ b/src/java2022spring/Standard.java @@ -9,12 +9,12 @@ public class Standard extends JFrame implements ActionListener { JMenu menuFunction,menuOption,menuHelp; JMenuItem menustandard,menuscience,menuDate,copypop,pastepop,bin,oct,hex,description; JTextField text=new JTextField("0"); - String operator="="; - double result; - private boolean first = true; - JPopupMenu pMenu=new JPopupMenu(); - String storage=new String(); - Boolean start=false; + String operator="=";//令操作符最开始为“=” + double result;//计算结果 + private boolean first = true;//输入的数字是否是文本框中的第一个数字 + JPopupMenu pMenu=new JPopupMenu();//弹出菜单 + String storage=new String();//存储空间 + Boolean start=false;//是否启动存储空间 Standard(){ this.setTitle("标准计算器"); this.setBackground(Color.white); @@ -49,10 +49,10 @@ public class Standard extends JFrame implements ActionListener { description.setFont(new Font("微软雅黑",Font.PLAIN,14)); copypop.setFont(new Font("宋体",Font.BOLD,16)); pastepop.setFont(new Font("宋体",Font.BOLD,16)); - menubar.add(menuFunction); + menubar.add(menuFunction); //为菜单条添加菜单 menubar.add(menuOption); menubar.add(menuHelp); - menuFunction.add(menustandard); + menuFunction.add(menustandard);//为菜单添加菜单项 menuFunction.add(menuscience); menuFunction.add(menuDate); menuOption.add(bin); @@ -61,42 +61,38 @@ public class Standard extends JFrame implements ActionListener { menuHelp.add(description); pMenu.add(copypop); pMenu.add(pastepop); - copypop.setAccelerator(KeyStroke.getKeyStroke("Ctrl+C")); - pastepop.setAccelerator(KeyStroke.getKeyStroke("Ctrl+V")); - text.setHorizontalAlignment(JTextField.RIGHT); + copypop.setAccelerator(KeyStroke.getKeyStroke("Ctrl+C"));//为复制添加快捷键 + pastepop.setAccelerator(KeyStroke.getKeyStroke("Ctrl+V"));//为粘贴添加快捷键 + text.setHorizontalAlignment(JTextField.RIGHT); //设置文本对齐方式 text.setBackground(new Color(210,210,210)); text.setFont(new Font("Arial",Font.BOLD,35)); - text.setBorder(null); + text.setBorder(null); //设置无文本边框 JPanel panel=new JPanel(); panel.setLayout(new GridLayout(7,4,2,2)); panel.setBackground(new Color(230,230,230)); for(int i=0;i0) { @@ -194,34 +190,31 @@ public class Standard extends JFrame implements ActionListener { } } } - else if(str.equals("C")) { + else if(str.equals("C")) { //实现归0功能 text.setText("0"); first = true; operator = "="; } - else if(".0123456789".indexOf(str)!=-1) { - if (first==true) { - if(str!=".") { - text.setText(str); + else if(".0123456789".indexOf(str)!=-1) { //实现数字和小数点的输出 + if (first==true) { //若为第一个数 + if(str!=".") { //若不是小数点 + text.setText(str);//直接显示数字 + } + else if((str.equals("."))&&(text.getText().indexOf(".")==-1)){ //若是小数点 + text.setText(text.getText()+"."); //直接在后面加小数点 } - else if((str.equals("."))&&(text.getText().indexOf(".")==-1)){ - text.setText(text.getText()+"."); - } } - else if((str.equals("."))&&(text.getText().indexOf(".")==-1)){ + else if((str.equals("."))&&(text.getText().indexOf(".")==-1)){ //不是第一个数字,输入的是小数点且文本框中没有小数点 text.setText(text.getText()+"."); } - else if(!str.equals(".")) { - if(text.getText()!="0") + else if(!str.equals(".")) { //输入的若不是小数点,则直接加数字 text.setText(text.getText()+str); - else - text.setText(str); } - first=false; + first=false;//输入数字后,则不再是第一个数 } else if(str.equals("+")||str.equals("-")||str.equals("×")||str.equals("÷")||str.equals("%")||str.equals("=")){ - double resultOther =Double.valueOf(text.getText()).doubleValue(); - switch(operator) { + double resultOther =Double.valueOf(text.getText()).doubleValue();//获取文本框中的字符串,并转换成浮点型 + switch(operator) { //实现按键功能 case"+":result+=resultOther; break; case"-":result-=resultOther; @@ -237,12 +230,12 @@ public class Standard extends JFrame implements ActionListener { case"=":result=resultOther; break; } - operator = str; - first = true; - text.setText(String.valueOf(result)); + operator = str;//令操作符为所按按键功能 + first = true;//运算符后又是第一个数 + text.setText(String.valueOf(result)); //在文本框中显示结果 } else if(str.equals("|x|")||str.equals("1/x")||str.equals("x^2")||str.equals("+/-")) { - operator=str; + operator=str;//令操作符为所按按键功能,放置此处是因为这些按键不需要输入第二个数 double n=Double.valueOf(text.getText()); switch(operator) { case"1/x":if(n!=0) { @@ -259,26 +252,26 @@ public class Standard extends JFrame implements ActionListener { first = true; text.setText(String.valueOf(result)); } - else if(str.equals("PI")) { + else if(str.equals("PI")) { //完成PI键功能 text.setText(String.valueOf(3.14159265)); } - else if(str.equals("MC")) { - storage="null"; + else if(str.equals("MC")) { //完成MC功能 + storage="null";//清空存储空间 } else if(str.equals("MR")) { - if(start==true) { - text.setText(storage); + if(start==true) {//如果存储空间启动 + text.setText(storage);//在文本框中显示存储空间的值 } } else if(str.equals("MS")) { - start=true; - storage=text.getText(); + start=true;//启动存储空间 + storage=text.getText(); //将文本框中的内容存到存储空间 } else if(str.equals("M+")) { start=true; - double n1=Double.valueOf(text.getText()); - double n2=Double.valueOf(storage); - n2=n1+n2; + double n1=Double.valueOf(text.getText()); //将文本框中的字符串转为浮点型 + double n2=Double.valueOf(storage); //将存储空间的字符串转为浮点型 + n2=n1+n2; //将文本框和存储空间的值相加 storage=String.valueOf(n2); } } @@ -287,3 +280,6 @@ public class Standard extends JFrame implements ActionListener { + + + diff --git a/src/java2022spring/StandardMainClass.java b/src/java2022spring/StandardMainClass.java index 4c5c4f8..979bd6a 100644 --- a/src/java2022spring/StandardMainClass.java +++ b/src/java2022spring/StandardMainClass.java @@ -3,7 +3,7 @@ import javax.swing.*; public class StandardMainClass { public static void main(String[] args) { Standard calculator=new Standard(); - calculator.setVisible(true); - calculator.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + calculator.setVisible(true); //设置窗口可视 + calculator.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //设置窗口关闭后结束窗口所在的应用程序 } } \ No newline at end of file -- Gitee From 09414ab2b9ef848b0b29e1ef008b6cb25ca6eb1e Mon Sep 17 00:00:00 2001 From: ma Date: Sat, 4 Jun 2022 09:55:46 +0800 Subject: [PATCH 12/13] =?UTF-8?q?=E5=AE=8C=E5=96=84=E4=BA=86=E9=98=B6?= =?UTF-8?q?=E4=B9=98=E5=8A=9F=E8=83=BD=E4=BB=A5=E5=8F=8A=E9=99=A4=E6=95=B0?= =?UTF-8?q?=E4=B8=BA0=E7=9A=84=E6=83=85=E5=86=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/Science.java | 34 +++++++++++++++++--------------- src/java2022spring/Standard.java | 12 ++++------- 2 files changed, 22 insertions(+), 24 deletions(-) diff --git a/src/java2022spring/Science.java b/src/java2022spring/Science.java index fbfef4a..270aad7 100644 --- a/src/java2022spring/Science.java +++ b/src/java2022spring/Science.java @@ -212,7 +212,7 @@ public class Science extends JFrame implements ActionListener{ } first=false; //输入数字后,则不再是第一个数 } - else if(str.equals("+")||str.equals("-")||str.equals("×")||str.equals("÷")||str.equals("%")||str.equals("=")||str.equals("x^y")){ + else if(str.equals("+")||str.equals("-")||str.equals("÷")||str.equals("×")||str.equals("%")||str.equals("=")||str.equals("x^y")){ double resultOther =Double.valueOf(text.getText()).doubleValue(); //获取文本框中的字符串,并转换成浮点型 switch(operator) { //实现按键功能 case"+":result+=resultOther; @@ -221,9 +221,7 @@ public class Science extends JFrame implements ActionListener{ break; case"×":result*=resultOther; break; - case"÷":if(resultOther!=0) { - result/=resultOther; - } + case"÷":result/=resultOther; break; case"%":result%=resultOther; break; @@ -236,14 +234,10 @@ public class Science extends JFrame implements ActionListener{ first = true; //运算符后又是第一个数 text.setText(String.valueOf(result)); //在文本框中显示结果 } - else if(str.equals("|x|")||str.equals("1/x")||str.equals("x^2")||str.equals("+/-")||str.equals("x^3")||str.equals("sqrt")||str.equals("rt")||str.equals("X!")||str.equals("ln")||str.equals("lg")||str.equals("sin")||str.equals("cos")||str.equals("tan")||str.equals("e^x")) { + else if(str.equals("|x|")||str.equals("x^2")||str.equals("1/x")||str.equals("+/-")||str.equals("x^3")||str.equals("sqrt")||str.equals("rt")||str.equals("ln")||str.equals("lg")||str.equals("sin")||str.equals("cos")||str.equals("tan")||str.equals("e^x")) { operator=str; //令操作符为所按按键功能,放置此处是因为这些按键不需要输入第二个数 double n=Double.valueOf(text.getText()); switch(operator) { - case"1/x":if(n!=0) { - result=1/n; - } - break; case"|x|":result=Math.abs(n); break; case"x^2":result=n*n; @@ -268,18 +262,26 @@ public class Science extends JFrame implements ActionListener{ break; case"e^x":result=Math.exp(n); break; - case"X!":{ - double t=1; - for(int m=1;m<=n;m++) { - t=t*m; - result=t; - } - } + case"1/x":result=1/n; break; } first = true; text.setText(String.valueOf(result)); } + else if(str.equals("X!")) { + operator=str; + double n=Double.valueOf(text.getText()); + double t=1; + if(n!=0) { //阶乘数不为0的情况 + for(int m=1;m<=n;m++) { + t=t*m; + result=t; + } + text.setText(String.valueOf(result)); + } + else + text.setText("1"); //0的阶乘为1 + } else if(str.equals("PI")) { //完成PI键功能 text.setText(String.valueOf(3.14159265)); } diff --git a/src/java2022spring/Standard.java b/src/java2022spring/Standard.java index 6a2604c..990e7c8 100644 --- a/src/java2022spring/Standard.java +++ b/src/java2022spring/Standard.java @@ -221,9 +221,7 @@ public class Standard extends JFrame implements ActionListener { break; case"×":result*=resultOther; break; - case"÷":if(resultOther!=0) { - result/=resultOther; - } + case"÷":result/=resultOther; break; case"%":result%=resultOther; break; @@ -234,20 +232,18 @@ public class Standard extends JFrame implements ActionListener { first = true;//运算符后又是第一个数 text.setText(String.valueOf(result)); //在文本框中显示结果 } - else if(str.equals("|x|")||str.equals("1/x")||str.equals("x^2")||str.equals("+/-")) { + else if(str.equals("|x|")||str.equals("x^2")||str.equals("+/-")||str.equals("1/x")) { operator=str;//令操作符为所按按键功能,放置此处是因为这些按键不需要输入第二个数 double n=Double.valueOf(text.getText()); switch(operator) { - case"1/x":if(n!=0) { - result=1/n; - } - break; case"|x|":result=Math.abs(n); break; case"x^2":result=n*n; break; case"+/-":result=n*(-1); break; + case"1/x":result=1/n; + break; } first = true; text.setText(String.valueOf(result)); -- Gitee From ba00abfacd904c8c2797fb5a36456a592923195c Mon Sep 17 00:00:00 2001 From: ma Date: Wed, 8 Jun 2022 19:28:46 +0800 Subject: [PATCH 13/13] =?UTF-8?q?=E5=9C=A8=E5=8E=9F=E6=9C=89=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E4=B8=8A=E8=BF=9B=E8=A1=8C=E4=BA=86=E5=AE=8C=E5=96=84?= =?UTF-8?q?=EF=BC=8C=E8=BF=9B=E8=A1=8C=E4=BA=86=E5=BC=82=E5=B8=B8=E5=A4=84?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/Date.java | 6 ++++++ src/java2022spring/Science.java | 27 +++++++++++++++++++++------ src/java2022spring/Standard.java | 19 +++++++++++++++++-- 3 files changed, 44 insertions(+), 8 deletions(-) diff --git a/src/java2022spring/Date.java b/src/java2022spring/Date.java index aadd281..7b516cf 100644 --- a/src/java2022spring/Date.java +++ b/src/java2022spring/Date.java @@ -183,6 +183,7 @@ public class Date extends JFrame implements ActionListener{ long time1,time2,day; Calendar calculator1=Calendar.getInstance(); //获取时间 Calendar calculator2=Calendar.getInstance(); + try{ year1=Integer.valueOf(column1[1].getText()); //将文本框中String类型的字符串转换成Integer型数字 month1=Integer.valueOf(column1[3].getText()); day1=Integer.valueOf(column1[5].getText()); @@ -195,6 +196,11 @@ public class Date extends JFrame implements ActionListener{ time2=calculator2.getTimeInMillis(); day=(time2-time1)/(1000*60*60*24); //将相差时间转化为天数 column3[1].setText(day+"天"); + } + catch(NumberFormatException m){ + column3[1].setText("Invalid"); + } + } } diff --git a/src/java2022spring/Science.java b/src/java2022spring/Science.java index 270aad7..01a2bef 100644 --- a/src/java2022spring/Science.java +++ b/src/java2022spring/Science.java @@ -152,22 +152,37 @@ public class Science extends JFrame implements ActionListener{ ); bin.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { - int n=Integer.parseInt(text.getText()); - text.setText(text.getText()+" BIN: "+Integer.toBinaryString(n)); //完成二进制转换功能 - } + try { + int n=Integer.parseInt(text.getText()); + text.setText(text.getText()+" BIN: "+Integer.toBinaryString(n)); //完成二进制转换功能 + } + catch(NumberFormatException m) { + text.setText("Invalid input"); + } + } } ); oct.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { + try{ int n=Integer.parseInt(text.getText()); text.setText(text.getText()+" OCT: "+Integer.toOctalString(n)); //完成八进制转换功能 + } + catch(NumberFormatException m){ + text.setText("Invalid input"); + } } } ); hex.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { - int n=Integer.parseInt(text.getText()); - text.setText(text.getText()+" HEX: "+Integer.toHexString(n)); //完成十六进制转换功能 + try{ + int n=Integer.parseInt(text.getText()); + text.setText(text.getText()+" HEX: "+Integer.toHexString(n));//完成十六进制转换功能 + } + catch(NumberFormatException m){ + text.setText("Invalid input"); + } } } ); @@ -234,7 +249,7 @@ public class Science extends JFrame implements ActionListener{ first = true; //运算符后又是第一个数 text.setText(String.valueOf(result)); //在文本框中显示结果 } - else if(str.equals("|x|")||str.equals("x^2")||str.equals("1/x")||str.equals("+/-")||str.equals("x^3")||str.equals("sqrt")||str.equals("rt")||str.equals("ln")||str.equals("lg")||str.equals("sin")||str.equals("cos")||str.equals("tan")||str.equals("e^x")) { + else if(str.equals("|x|")||str.equals("1/x")||str.equals("x^2")||str.equals("+/-")||str.equals("x^3")||str.equals("sqrt")||str.equals("rt")||str.equals("ln")||str.equals("lg")||str.equals("sin")||str.equals("cos")||str.equals("tan")||str.equals("e^x")) { operator=str; //令操作符为所按按键功能,放置此处是因为这些按键不需要输入第二个数 double n=Double.valueOf(text.getText()); switch(operator) { diff --git a/src/java2022spring/Standard.java b/src/java2022spring/Standard.java index 990e7c8..95587a3 100644 --- a/src/java2022spring/Standard.java +++ b/src/java2022spring/Standard.java @@ -153,22 +153,37 @@ public class Standard extends JFrame implements ActionListener { ); bin.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { + try { int n=Integer.parseInt(text.getText()); text.setText(text.getText()+" BIN: "+Integer.toBinaryString(n)); //完成二进制转换功能 } + catch(NumberFormatException m) { + text.setText("Invalid input"); + } + } } ); oct.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { + try{ int n=Integer.parseInt(text.getText()); text.setText(text.getText()+" OCT: "+Integer.toOctalString(n)); //完成八进制转换功能 + } + catch(NumberFormatException m){ + text.setText("Invalid input"); + } } } ); hex.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { - int n=Integer.parseInt(text.getText()); - text.setText(text.getText()+" HEX: "+Integer.toHexString(n)); //完成十六进制转换功能 + try{ + int n=Integer.parseInt(text.getText()); + text.setText(text.getText()+" HEX: "+Integer.toHexString(n));//完成十六进制转换功能 + } + catch(NumberFormatException m){ + text.setText("Invalid input"); + } } } ); -- Gitee