From 8c5bd46f0705ca81014406483a7ecfac90104fb7 Mon Sep 17 00:00:00 2001 From: Adonis <532791674@qq.com> Date: Fri, 27 May 2022 16:18:39 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E5=BC=B9=E5=87=BA=E7=AA=97=E5=8F=A3?= =?UTF-8?q?=EF=BC=8C=E6=98=BE=E7=A4=BA=E4=B8=BA=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/Test.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/java2022spring/Test.java b/src/java2022spring/Test.java index 24deb29..48e4917 100644 --- a/src/java2022spring/Test.java +++ b/src/java2022spring/Test.java @@ -1,7 +1,11 @@ package java2022spring; - +import javax.swing.*; public class Test { public static void main(String[] args) { - System.out.println("Hello world!"); + Standard calculator =new Standard(""); + calculator.setBounds(200,200,360,360); + calculator.setVisible(true); + calculator.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + } } -- Gitee From fea99d963135287b935c4f5e365fe0af39fcf47a Mon Sep 17 00:00:00 2001 From: Adonis <532791674@qq.com> Date: Fri, 27 May 2022 16:22:46 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E6=98=BE=E7=A4=BA=E6=96=87=E6=9C=AC?= =?UTF-8?q?=E6=A1=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/Standard.java | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 src/java2022spring/Standard.java diff --git a/src/java2022spring/Standard.java b/src/java2022spring/Standard.java new file mode 100644 index 0000000..2905c7c --- /dev/null +++ b/src/java2022spring/Standard.java @@ -0,0 +1,20 @@ +package java2022spring; +import java.awt.*; +import javax.swing.*; +public class Standard extends JFrame { + JTextField input; + JPanel centerP; + Button button; + Standard(String s){ + setTitle(s); + input =new JTextField(); + input.setHorizontalAlignment(JTextField.RIGHT); + input.setFont(new Font("",Font.PLAIN,30)); + add(input,BorderLayout.NORTH); + centerP=new JPanel(); + add(centerP,BorderLayout.CENTER); + + + } + } + -- Gitee From 3090e6223a2fc96863c66e17386764ad1ae3077c Mon Sep 17 00:00:00 2001 From: Adonis <532791674@qq.com> Date: Sat, 28 May 2022 11:36:36 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E7=AE=80=E5=8D=95=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E6=8C=89=E9=94=AE=EF=BC=8C=E8=BF=98=E9=9C=80=E8=A6=81=E8=B0=83?= =?UTF-8?q?=E6=95=B4=E4=B8=80=E4=B8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/Standard.java | 50 +++++++++++++++++++++++++++----- 1 file changed, 42 insertions(+), 8 deletions(-) diff --git a/src/java2022spring/Standard.java b/src/java2022spring/Standard.java index 2905c7c..0152c45 100644 --- a/src/java2022spring/Standard.java +++ b/src/java2022spring/Standard.java @@ -1,20 +1,54 @@ package java2022spring; import java.awt.*; +import java.awt.event.*; + import javax.swing.*; -public class Standard extends JFrame { +public class Standard extends JFrame implements ActionListener{ JTextField input; - JPanel centerP; + JPanel panel; Button button; Standard(String s){ setTitle(s); input =new JTextField(); input.setHorizontalAlignment(JTextField.RIGHT); - input.setFont(new Font("",Font.PLAIN,30)); + input.setFont(new Font("黑体",Font.PLAIN,30)); + panel=new JPanel(); add(input,BorderLayout.NORTH); - centerP=new JPanel(); - add(centerP,BorderLayout.CENTER); - - - } + + String [] buttonS= {"7","8","9","×","4","5","6","-", + "1","2","3","+","+/-","0",".","="}; + String [] buttonC= {"%","CE","C","←","1/x","x²","√","÷"}; + String [] buttonN= {"MC","MR","M+","M-","MS"}; + JButton south[]=new JButton[buttonS.length]; + JButton center[]=new JButton[buttonC.length]; + JButton north[]=new JButton[buttonN.length]; + + JPanel southP=new JPanel(); + southP.setLayout(new GridLayout(4,4,3,3)); + for(int i=0;i Date: Thu, 2 Jun 2022 08:42:18 +0800 Subject: [PATCH 4/6] =?UTF-8?q?=E4=B9=8B=E5=89=8D=E7=9A=84=E7=82=B9?= =?UTF-8?q?=E5=87=BB=E6=8C=89=E9=92=AE=E6=89=93=E5=8D=B0=E4=B8=8D=E5=87=BA?= =?UTF-8?q?=E6=9D=A5=EF=BC=8C=E6=8E=A8=E7=BF=BB=E9=87=8D=E6=9D=A5=EF=BC=88?= =?UTF-8?q?=E7=94=A8=E4=BA=86=E6=9C=80=E7=AC=A8=E7=9A=84=E6=96=B9=E6=B3=95?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 添加了部分计算功能的代码 --- src/java2022spring/Standard.java | 218 +++++++++++++++++++++++++------ 1 file changed, 179 insertions(+), 39 deletions(-) diff --git a/src/java2022spring/Standard.java b/src/java2022spring/Standard.java index 0152c45..ca8c6e1 100644 --- a/src/java2022spring/Standard.java +++ b/src/java2022spring/Standard.java @@ -6,49 +6,189 @@ import javax.swing.*; public class Standard extends JFrame implements ActionListener{ JTextField input; JPanel panel; - Button button; + + ActionListener command; Standard(String s){ - setTitle(s); - input =new JTextField(); + setTitle(s); + + + panel=new JPanel(); + panel.setLayout(new BorderLayout()); + input =new JTextField(""); + input.setEnabled(false); input.setHorizontalAlignment(JTextField.RIGHT); input.setFont(new Font("黑体",Font.PLAIN,30)); - panel=new JPanel(); add(input,BorderLayout.NORTH); - - String [] buttonS= {"7","8","9","×","4","5","6","-", - "1","2","3","+","+/-","0",".","="}; - String [] buttonC= {"%","CE","C","←","1/x","x²","√","÷"}; - String [] buttonN= {"MC","MR","M+","M-","MS"}; - JButton south[]=new JButton[buttonS.length]; - JButton center[]=new JButton[buttonC.length]; - JButton north[]=new JButton[buttonN.length]; - - JPanel southP=new JPanel(); - southP.setLayout(new GridLayout(4,4,3,3)); - for(int i=0;i='0'||s.charAt(j)=='.') { + num[k]+=s.charAt(j); + continue; + } else { + command[k]=s.charAt(j); + k++; + } + } + int result=0; + for(int i=0;i Date: Fri, 3 Jun 2022 16:04:25 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=AE=A1=E7=AE=97?= =?UTF-8?q?=E5=87=BD=E6=95=B0=EF=BC=8C=E8=A1=A5=E5=85=85=E5=AE=8C=E6=95=B4?= =?UTF-8?q?=E8=AE=A1=E7=AE=97=E5=99=A8=E7=9A=84=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/Standard.java | 389 +++++++++++++++++-------------- 1 file changed, 210 insertions(+), 179 deletions(-) diff --git a/src/java2022spring/Standard.java b/src/java2022spring/Standard.java index ca8c6e1..be80ec0 100644 --- a/src/java2022spring/Standard.java +++ b/src/java2022spring/Standard.java @@ -6,189 +6,220 @@ import javax.swing.*; public class Standard extends JFrame implements ActionListener{ JTextField input; JPanel panel; - - ActionListener command; - Standard(String s){ - setTitle(s); + double num1,num2; + String result=""; + String operator=""; + double memory; + + Standard(String s){ + setTitle(s); - - panel=new JPanel(); - panel.setLayout(new BorderLayout()); - input =new JTextField(""); - input.setEnabled(false); - input.setHorizontalAlignment(JTextField.RIGHT); - input.setFont(new Font("黑体",Font.PLAIN,30)); - add(input,BorderLayout.NORTH); + panel=new JPanel(); + panel.setLayout(new BorderLayout()); + input =new JTextField(); + input.setEditable(false); + input.setHorizontalAlignment(JTextField.RIGHT); + input.setFont(new Font("黑体",Font.PLAIN,30)); + add(input,BorderLayout.NORTH); - JButton unuse=new JButton(""); - JButton percent=new JButton("%"); - JButton clearAll=new JButton("C"); - JButton backspace=new JButton("←"); - JButton down=new JButton("1/x"); - JButton squ=new JButton("x²"); - JButton sqrt=new JButton("√"); - JButton div=new JButton("÷"); - JButton sev=new JButton("7"); - JButton eig=new JButton("8"); - JButton nin=new JButton("9"); - JButton mul=new JButton("×"); - JButton fou=new JButton("4"); - JButton fiv=new JButton("5"); - JButton six=new JButton("6"); - JButton sub=new JButton("-"); - JButton one=new JButton("1"); - JButton two=new JButton("2"); - JButton thr=new JButton("3"); - JButton add=new JButton("+"); - JButton neg=new JButton("+/-"); - JButton zeo=new JButton("0"); - JButton poi=new JButton("."); - JButton eql=new JButton("="); - JButton m1=new JButton("MC"); - JButton m2=new JButton("MR"); - JButton m3=new JButton("M+"); - JButton m4=new JButton("M-"); - JButton m5=new JButton("MS"); + JButton percent=new JButton("%"); + JButton clear=new JButton("CE"); + JButton clearAll=new JButton("C"); + JButton backspace=new JButton("←"); + JButton down=new JButton("1/x"); + JButton squ=new JButton("x²"); + JButton sqrt=new JButton("√"); + JButton div=new JButton("÷"); + JButton sev=new JButton("7"); + JButton eig=new JButton("8"); + JButton nin=new JButton("9"); + JButton mul=new JButton("×"); + JButton fou=new JButton("4"); + JButton fiv=new JButton("5"); + JButton six=new JButton("6"); + JButton sub=new JButton("-"); + JButton one=new JButton("1"); + JButton two=new JButton("2"); + JButton thr=new JButton("3"); + JButton add=new JButton("+"); + JButton neg=new JButton("+/-"); + JButton zeo=new JButton("0"); + JButton poi=new JButton("."); + JButton eql=new JButton("="); + JButton m1=new JButton("MC"); + JButton m2=new JButton("MR"); + JButton m3=new JButton("M+"); + JButton m4=new JButton("M-"); + JButton m5=new JButton("MS"); - unuse.addActionListener(this); - percent.addActionListener(this); - clearAll.addActionListener(this); - backspace.addActionListener(this); - down.addActionListener(this); - squ.addActionListener(this); - sqrt.addActionListener(this); - div.addActionListener(this); - sev.addActionListener(this); - eig.addActionListener(this); - nin.addActionListener(this); - mul.addActionListener(this); - fou.addActionListener(this); - fiv.addActionListener(this); - six.addActionListener(this); - sub.addActionListener(this); - one.addActionListener(this); - two.addActionListener(this); - thr.addActionListener(this); - add.addActionListener(this); - neg.addActionListener(this); - zeo.addActionListener(this); - poi.addActionListener(this); - eql.addActionListener(this); - m1.addActionListener(this); - m2.addActionListener(this); - m3.addActionListener(this); - m4.addActionListener(this); - m5.addActionListener(this); + clear.addActionListener(this); + percent.addActionListener(this); + clearAll.addActionListener(this); + backspace.addActionListener(this); + down.addActionListener(this); + squ.addActionListener(this); + sqrt.addActionListener(this); + div.addActionListener(this); + sev.addActionListener(this); + eig.addActionListener(this); + nin.addActionListener(this); + mul.addActionListener(this); + fou.addActionListener(this); + fiv.addActionListener(this); + six.addActionListener(this); + sub.addActionListener(this); + one.addActionListener(this); + two.addActionListener(this); + thr.addActionListener(this); + add.addActionListener(this); + neg.addActionListener(this); + zeo.addActionListener(this); + poi.addActionListener(this); + eql.addActionListener(this); + m1.addActionListener(this); + m2.addActionListener(this); + m3.addActionListener(this); + m4.addActionListener(this); + m5.addActionListener(this); + + JPanel centerP=new JPanel(); + centerP.add(percent); + centerP.add(clear); + centerP.add(clearAll); + centerP.add(backspace); + centerP.add(down); + centerP.add(squ); + centerP.add(sqrt); + centerP.add(div); + centerP.add(sev); + centerP.add(eig); + centerP.add(nin); + centerP.add(mul); + centerP.add(fou); + centerP.add(fiv); + centerP.add(six); + centerP.add(sub); + centerP.add(one); + centerP.add(two); + centerP.add(thr); + centerP.add(add); + centerP.add(neg); + centerP.add(zeo); + centerP.add(poi); + centerP.add(eql); + centerP.setLayout(new GridLayout(6,4,3,3)); - JPanel centerP=new JPanel(); - centerP.add(unuse); - centerP.add(percent); - centerP.add(clearAll); - centerP.add(backspace); - centerP.add(down); - centerP.add(squ); - centerP.add(sqrt); - centerP.add(div); - centerP.add(sev); - centerP.add(eig); - centerP.add(nin); - centerP.add(mul); - centerP.add(fou); - centerP.add(fiv); - centerP.add(six); - centerP.add(sub); - centerP.add(one); - centerP.add(two); - centerP.add(thr); - centerP.add(add); - centerP.add(neg); - centerP.add(zeo); - centerP.add(poi); - centerP.add(eql); - centerP.setLayout(new GridLayout(6,4,3,3)); - - JPanel northP=new JPanel(); - northP.add(m1); - northP.add(m2); - northP.add(m3); - northP.add(m4); - northP.add(m5); - northP.setLayout(new GridLayout(1,5,3,3)); + JPanel northP=new JPanel(); + northP.add(m1); + northP.add(m2); + northP.add(m3); + northP.add(m4); + northP.add(m5); + northP.setLayout(new GridLayout(1,5,3,3)); - JPanel panelC=new JPanel(); - panelC.setLayout(new BorderLayout()); - panelC.add(northP,BorderLayout.NORTH); - panelC.add(centerP,BorderLayout.CENTER); - add(panelC,BorderLayout.CENTER); + JPanel panelC=new JPanel(); + panelC.setLayout(new BorderLayout()); + panelC.add(northP,BorderLayout.NORTH); + panelC.add(centerP,BorderLayout.CENTER); + add(panelC,BorderLayout.CENTER); - } - - public void actionPerformed(ActionEvent e) { - String button=e.getActionCommand(); -// if(button.equals("7")||button.equals("8")||button.equals("9")||button.equals("4")|| -// button.equals("5")||button.equals("6")||button.equals("1")||button.equals("2") -// ||button.equals("3")||button.equals("0")) { -// input.setText(input.getText()+button); -// } - if(button!="←"&&button!="=") { - input.setText(input.getText()+button); - } - if(button.equals("←")) { - input.setText(input.getText().substring(0,input.getText().length()-1)); - } - if(button.equals("C")) { - input.setText("0"); - } - if(button.equals("=")) { - input.setText(calculate(input.getText())); - } -// - } - public String calculate(String string) { - StringBuffer s=new StringBuffer(string); - int count=0; - - int j=0; - for(j=0;j='0'||s.charAt(j)=='.') { - continue; - } else { - count++; - } - } - char[] command=new char[count]; - String[] num=new String[count+1]; - for(j=0;j='0'||s.charAt(j)=='.') { - num[k]+=s.charAt(j); - continue; - } else { - command[k]=s.charAt(j); - k++; - } - } - int result=0; - for(int i=0;i=0){ + neg=0-Math.abs(neg); + } + result=Double.toString(neg); + input.setText(result);break; + case"x²": + double squ=Double.parseDouble(result); + result=Double.toString(Math.pow(squ, 2)); + input.setText(result);break; + case"√": + double sqrt=Double.parseDouble(result); + result=Double.toString(Math.sqrt(sqrt)); + input.setText(result);break; + case"←": + int backspace=result.length(); + if(backspace==1){ + result=""; + } else { + result=result.substring (0,backspace-1); + } + input.setText(result);break; + case"%": + double percent=(Double.parseDouble(result))/100; + result=Double.toString(percent); + input.setText(result);break; + case"1/x": + double down=1/(Double.parseDouble(result)); + result=Double.toString(down); + input.setText(result);break; + default: + result+=command; + input.setText(result);break; + } + } +} -- Gitee From 3ba648b6100baf7544b38fd8e84ff1a8b52031f0 Mon Sep 17 00:00:00 2001 From: Adonis <532791674@qq.com> Date: Fri, 3 Jun 2022 16:55:54 +0800 Subject: [PATCH 6/6] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/Standard.java | 101 ++++++++++++++++--------------- 1 file changed, 53 insertions(+), 48 deletions(-) diff --git a/src/java2022spring/Standard.java b/src/java2022spring/Standard.java index be80ec0..cfe862b 100644 --- a/src/java2022spring/Standard.java +++ b/src/java2022spring/Standard.java @@ -4,24 +4,25 @@ import java.awt.event.*; import javax.swing.*; public class Standard extends JFrame implements ActionListener{ - JTextField input; - JPanel panel; - double num1,num2; - String result=""; - String operator=""; - double memory; + JTextField input; + JPanel panel; + double num1,num2; //num1、num2分别为计算器读取的计算数值 + String result=""; //input文本框输出的结果 + String operator=""; //运算符 + double memory; //存储的数值 - Standard(String s){ + Standard(String s){ setTitle(s); panel=new JPanel(); panel.setLayout(new BorderLayout()); input =new JTextField(); - input.setEditable(false); - input.setHorizontalAlignment(JTextField.RIGHT); - input.setFont(new Font("黑体",Font.PLAIN,30)); - add(input,BorderLayout.NORTH); + input.setEditable(false); //设置文本框为不可编辑 + input.setHorizontalAlignment(JTextField.RIGHT); //设置文本靠右 + input.setFont(new Font("黑体",Font.PLAIN,30)); //设置字体类型大小 + add(input,BorderLayout.NORTH); + //创建按钮 JButton percent=new JButton("%"); JButton clear=new JButton("CE"); JButton clearAll=new JButton("C"); @@ -52,6 +53,7 @@ public class Standard extends JFrame implements ActionListener{ JButton m4=new JButton("M-"); JButton m5=new JButton("MS"); + //注册监视器 clear.addActionListener(this); percent.addActionListener(this); clearAll.addActionListener(this); @@ -82,6 +84,7 @@ public class Standard extends JFrame implements ActionListener{ m4.addActionListener(this); m5.addActionListener(this); + //将按钮添加进面板 JPanel centerP=new JPanel(); centerP.add(percent); centerP.add(clear); @@ -116,7 +119,7 @@ public class Standard extends JFrame implements ActionListener{ northP.add(m4); northP.add(m5); northP.setLayout(new GridLayout(1,5,3,3)); - + JPanel panelC=new JPanel(); panelC.setLayout(new BorderLayout()); panelC.add(northP,BorderLayout.NORTH); @@ -128,16 +131,17 @@ public class Standard extends JFrame implements ActionListener{ public void actionPerformed(ActionEvent e) { String command=e.getActionCommand(); try { - caculate(command); + caculate(command); //调用计算函数 }catch(Exception ee) { System.out.println(ee.getMessage()); } } +//计算函数 public void caculate(String command) throws Exception{ switch (command) { - case"+": + case"+": //加减乘除按钮功能 case"-": case"×": case"÷": @@ -145,7 +149,7 @@ public void caculate(String command) throws Exception{ num1=Double.parseDouble(result); result=""; input.setText(input.getText()+result);break; - case"=": + case"=": //等号功能 num2=Double.parseDouble(result); switch (operator){ case"+": @@ -158,6 +162,32 @@ public void caculate(String command) throws Exception{ result=Double.toString(num1/num2);break; } input.setText(result);break; + case"+/-": //取相反数 + double neg=Double.parseDouble(result); + if(neg<0){ + neg=Math.abs(neg); + } else if(neg>=0){ + neg=0-Math.abs(neg); + } + result=Double.toString(neg); + input.setText(result);break; + case"x²": //求平方 + double squ=Double.parseDouble(result); + result=Double.toString(Math.pow(squ, 2)); + input.setText(result);break; + case"√": //求开方 + double sqrt=Double.parseDouble(result); + result=Double.toString(Math.sqrt(sqrt)); + input.setText(result);break; + case"%": //求百分数 + double percent=(Double.parseDouble(result))/100; + result=Double.toString(percent); + input.setText(result);break; + case"1/x": //求倒数 + double down=1/(Double.parseDouble(result)); + result=Double.toString(down); + input.setText(result);break; + //以下为计算器功能键 case"C": num1=0; num2=0; @@ -166,6 +196,14 @@ public void caculate(String command) throws Exception{ case"CE": result=""; input.setText(result);break; + case"←": + int backspace=result.length(); + if(backspace==1){ + result=""; + } else { + result=result.substring (0,backspace-1); + } + input.setText(result);break; case"MC": this.memory=0;result=""; input.setText(result);break; @@ -184,39 +222,6 @@ public void caculate(String command) throws Exception{ double m4 = (Double.parseDouble(result)-this.memory); result = Double.toString(m4); input.setText(result);break; - case"+/-": - double neg=Double.parseDouble(result); - if(neg<0){ - neg=Math.abs(neg); - } else if(neg>=0){ - neg=0-Math.abs(neg); - } - result=Double.toString(neg); - input.setText(result);break; - case"x²": - double squ=Double.parseDouble(result); - result=Double.toString(Math.pow(squ, 2)); - input.setText(result);break; - case"√": - double sqrt=Double.parseDouble(result); - result=Double.toString(Math.sqrt(sqrt)); - input.setText(result);break; - case"←": - int backspace=result.length(); - if(backspace==1){ - result=""; - } else { - result=result.substring (0,backspace-1); - } - input.setText(result);break; - case"%": - double percent=(Double.parseDouble(result))/100; - result=Double.toString(percent); - input.setText(result);break; - case"1/x": - double down=1/(Double.parseDouble(result)); - result=Double.toString(down); - input.setText(result);break; default: result+=command; input.setText(result);break; -- Gitee