From 156146fb37fda0b4e7ef74d3e2e43708e041d7f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=87=8C?= <鏉庨噷@DESKTOP-JFK4GTV> Date: Wed, 18 May 2022 23:01:33 +0800 Subject: [PATCH 01/11] =?UTF-8?q?=E5=88=9B=E5=BB=BA=E4=BA=86=E7=AA=97?= =?UTF-8?q?=E5=8F=A3=EF=BC=8C=E5=BB=BA=E7=AB=8B=E9=80=89=E9=A1=B9=E5=8D=A1?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/Cal.java | 10 ++++++++++ src/java2022spring/TPanel.java | 25 +++++++++++++++++++++++++ src/java2022spring/calculator.java | 15 +++++++++++++++ 3 files changed, 50 insertions(+) create mode 100644 src/java2022spring/Cal.java create mode 100644 src/java2022spring/TPanel.java create mode 100644 src/java2022spring/calculator.java diff --git a/src/java2022spring/Cal.java b/src/java2022spring/Cal.java new file mode 100644 index 0000000..1656f3c --- /dev/null +++ b/src/java2022spring/Cal.java @@ -0,0 +1,10 @@ +package java2022spring; + +import javax.swing.JFrame; +import java.awt.*; + +import javax.naming.InitialContext; +import javax.swing.*; +public class Cal extends JFrame{ + +} diff --git a/src/java2022spring/TPanel.java b/src/java2022spring/TPanel.java new file mode 100644 index 0000000..3ff091b --- /dev/null +++ b/src/java2022spring/TPanel.java @@ -0,0 +1,25 @@ +package java2022spring; + +import java.awt.BorderLayout; +import java.awt.Panel; + +import javax.swing.JPanel; +import javax.swing.JTabbedPane; + +public class TPanel extends JPanel{ + Panel panel,panel2; + JTabbedPane p1; + JTabbedPane p2; + public TPanel() { + panel=new Panel(); + panel2=new Panel(); + p1=new JTabbedPane(); + p2=new JTabbedPane(); + p1.add("计算器",panel); + p2.add("面积", panel2); + add(p1,BorderLayout.CENTER); + add(p2,BorderLayout.CENTER); + } + + +} diff --git a/src/java2022spring/calculator.java b/src/java2022spring/calculator.java new file mode 100644 index 0000000..2189792 --- /dev/null +++ b/src/java2022spring/calculator.java @@ -0,0 +1,15 @@ +package java2022spring; + +import java.awt.BorderLayout; +import java.awt.Container; + +import javax.swing.JFrame; + +public class calculator { + public static void main(String[] agrs) { + JFrame window=new JFrame("简易计算器"); + window.add(new TPanel(),BorderLayout.CENTER); + window.setBounds(100,100,450,450); + window.setVisible(true); + } +} -- Gitee From 015616dac2ec732e2e1be3d68d0a95641e11f1d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=87=8C?= <鏉庨噷@DESKTOP-JFK4GTV> Date: Sun, 22 May 2022 21:29:25 +0800 Subject: [PATCH 02/11] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86=E5=9F=BA?= =?UTF-8?q?=E7=A1=80=E6=8C=89=E9=92=AE=EF=BC=8C=E5=A4=A7=E6=96=B9=E5=90=91?= =?UTF-8?q?=E7=A1=AE=E5=AE=9A=E5=B8=83=E5=B1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/TPanel.java | 68 ++++++++++++++++++++++++++---- src/java2022spring/calculator.java | 2 +- 2 files changed, 60 insertions(+), 10 deletions(-) diff --git a/src/java2022spring/TPanel.java b/src/java2022spring/TPanel.java index 3ff091b..6f93f5a 100644 --- a/src/java2022spring/TPanel.java +++ b/src/java2022spring/TPanel.java @@ -1,25 +1,75 @@ package java2022spring; - +import java.awt.*; import java.awt.BorderLayout; +import java.awt.GridLayout; import java.awt.Panel; - +import javax.swing.JButton; import javax.swing.JPanel; import javax.swing.JTabbedPane; +import javax.swing.JTextField; public class TPanel extends JPanel{ - Panel panel,panel2; + Panel panel1,panel2; JTabbedPane p1; JTabbedPane p2; + + JTextField jTextField=new JTextField(10); + + String str1=new String("+"); + String str2=new String("-"); + String str3=new String("*"); + String str4=new String("/"); + String fuhao; +//创建数字键1-9 + JButton jButton0=new JButton("0"); + JButton jButton1=new JButton("1"); + JButton jButton2=new JButton("2"); + JButton jButton3=new JButton("3"); + JButton jButton4=new JButton("4"); + JButton jButton5=new JButton("5"); + JButton jButton6=new JButton("6"); + JButton jButton7=new JButton("7"); + JButton jButton8=new JButton("8"); + JButton jButton9=new JButton("9"); +//创建符号与小数点键 + JButton jButton_jia=new JButton("+"); + JButton jButton_jian=new JButton("-"); + JButton jButton_cheng=new JButton("*"); + JButton jButton_chu=new JButton("/"); + JButton jButton_denyu=new JButton("="); + JButton jButton_dian=new JButton("."); public TPanel() { - panel=new Panel(); + panel1=new Panel(); + panel1.setLayout(new GridLayout(5,6,10,10)); panel2=new Panel(); p1=new JTabbedPane(); p2=new JTabbedPane(); - p1.add("计算器",panel); + p1.add("计算器",panel1); p2.add("面积", panel2); - add(p1,BorderLayout.CENTER); - add(p2,BorderLayout.CENTER); + add(p1,panel1); + add(p2,panel2); + + + panel1.add(jTextField,BorderLayout.NORTH); + + panel1.add(jButton0); + panel1.add(jButton1); + panel1.add(jButton2); + panel1.add(jButton3); + panel1.add(jButton4); + panel1.add(jButton5); + panel1.add(jButton6); + panel1.add(jButton7); + panel1.add(jButton8); + panel1.add(jButton9); + panel1.add(jButton_jia); + panel1.add(jButton_jian); + panel1.add(jButton_cheng); + panel1.add(jButton_chu); + panel1.add(jButton_denyu); + panel1.add(jButton_dian); + } + public void setFuhao(String str) { + fuhao=str; } - - } diff --git a/src/java2022spring/calculator.java b/src/java2022spring/calculator.java index 2189792..fcbe6ea 100644 --- a/src/java2022spring/calculator.java +++ b/src/java2022spring/calculator.java @@ -8,7 +8,7 @@ import javax.swing.JFrame; public class calculator { public static void main(String[] agrs) { JFrame window=new JFrame("简易计算器"); - window.add(new TPanel(),BorderLayout.CENTER); + window.add(new TPanel()); window.setBounds(100,100,450,450); window.setVisible(true); } -- Gitee From fefc1430c41013edbc3f7e42e65bba2f3561e5e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=87=8C?= <鏉庨噷@DESKTOP-JFK4GTV> Date: Wed, 25 May 2022 22:47:17 +0800 Subject: [PATCH 03/11] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E4=BA=86=E6=8C=89?= =?UTF-8?q?=E9=92=AE=E4=BA=8B=E4=BB=B6=E6=BA=90=E7=9A=84=E4=BA=8B=E4=BB=B6?= =?UTF-8?q?=E5=A4=84=E7=90=86=EF=BC=8C=E4=BD=86=E8=BF=98=E6=9C=AA=E8=83=BD?= =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E8=AE=A1=E7=AE=97=E8=AE=BE=E8=AE=A1=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/CalculatorListener.java | 60 ++++++++++++++ src/java2022spring/CalculatorWindow.java | 94 ++++++++++++++++++++++ src/java2022spring/calculator.java | 6 +- 3 files changed, 156 insertions(+), 4 deletions(-) create mode 100644 src/java2022spring/CalculatorListener.java create mode 100644 src/java2022spring/CalculatorWindow.java diff --git a/src/java2022spring/CalculatorListener.java b/src/java2022spring/CalculatorListener.java new file mode 100644 index 0000000..5d849d2 --- /dev/null +++ b/src/java2022spring/CalculatorListener.java @@ -0,0 +1,60 @@ +package java2022spring; + +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +public class CalculatorListener implements ActionListener{ + CalculatorWindow window; + String fuhao; + String Number1,Number2; + public void setWindow(CalculatorWindow window) { + this.window=window; + } + + public void actionPerformed(ActionEvent e) { + String ss=e.getActionCommand(); + + window.jTextField.setText(ss); + + + + + + } + void calcutor() { + double number1=Double.parseDouble(window.jTextField.getText()); + double number2=Double.parseDouble(Number2); + double result; + if(fuhao.equals("+")) { + window.jTextField.setText(fuhao); + result=number1+number2; + } + else if(fuhao.equals("-")) { + window.jTextField.setText(fuhao); + result=number1-number2; + } + else if (fuhao.equals("*")) { + window.jTextField.setText(fuhao); + result=number1*number2; + } + else if (fuhao.equals("/")) { + window.jTextField.setText(fuhao); + try { + if(!(number2==0)) + result=number1/number2; + } + catch (Exception ex) { + // TODO: handle exception + + window.jTextField.setText(ex.getMessage()); + } + } + else if(fuhao.equals("%")) { + window.jTextField.setText(fuhao); + result=number1%number2; + } + + + } +} + diff --git a/src/java2022spring/CalculatorWindow.java b/src/java2022spring/CalculatorWindow.java new file mode 100644 index 0000000..0c163b4 --- /dev/null +++ b/src/java2022spring/CalculatorWindow.java @@ -0,0 +1,94 @@ +package java2022spring; +import java.awt.*; +import java.awt.BorderLayout; +import java.awt.GridLayout; +import java.awt.Panel; +import javax.swing.JButton; +import javax.swing.JFrame; +import javax.swing.JPanel; +import javax.swing.JTabbedPane; +import javax.swing.JTextField; + +public class CalculatorWindow extends JFrame{ + JTextField jTextField=new JTextField(20); + Panel panel1; + JTabbedPane p1; + Panel panelCenter; + Panel panelNorth; + + CalculatorListener listener; + + String []strings= {"+","-","*","/"}; + String fuhao; +//创建数字键1-9 + String Keys[]= {"1","2","3","4","5","6","7","8","9","0","+","-","*","/","=",".","x^2","%","sqrt"}; + JButton jb[]=new JButton[Keys.length]; + +//创建清除键 + JButton jButton_shch=new JButton("←"); + JButton jButton_qchu=new JButton("C"); + JButton jButton_qchuall=new JButton("CE"); +//创建符号与小数点键 + + + + + JButton jButton_mc=new JButton("MC"); + JButton jButton_mr=new JButton("MR"); + JButton jButton_ms=new JButton("MS"); + JButton jButton_m=new JButton("M+"); + + + + + + public CalculatorWindow() { + inttf(); + intf(); + setVisible(true); + setBounds(10,10,350,350); + } + + + void intf() { + listener=new CalculatorListener(); + listener.setWindow(this); + for (int i = 0; i < jb.length; i++) { + jb[i].addActionListener(listener); + } + + } + + void inttf() { + p1=new JTabbedPane(); + panel1=new Panel(); + panel1.setLayout(new BorderLayout()); + p1.add("计算器",panel1); + panelCenter=new Panel(); + panelCenter.setLayout(new GridLayout(4,4)); + panel1.add(panelCenter,BorderLayout.CENTER); + + + panelNorth=new Panel(); + panelNorth.setLayout(new GridLayout(1,3)); + panel1.add(panelNorth,BorderLayout.NORTH); + + add(jTextField,BorderLayout.NORTH); + add(p1); + add(panel1); + + + for(int i=0;i Date: Fri, 27 May 2022 21:47:23 +0800 Subject: [PATCH 04/11] =?UTF-8?q?=E7=AE=80=E5=8D=95=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E4=BA=86=E8=AE=A1=E7=AE=97=E6=96=B9=E5=BC=8F=EF=BC=8C=E4=BD=86?= =?UTF-8?q?=E8=BF=98=E4=B8=8D=E5=A4=9F=E5=AE=8C=E5=96=84=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/CalculatorListener.java | 44 +++++++++++---- src/java2022spring/CalculatorWindow.java | 65 ++++++++++++---------- 2 files changed, 69 insertions(+), 40 deletions(-) diff --git a/src/java2022spring/CalculatorListener.java b/src/java2022spring/CalculatorListener.java index 5d849d2..693b085 100644 --- a/src/java2022spring/CalculatorListener.java +++ b/src/java2022spring/CalculatorListener.java @@ -5,26 +5,43 @@ import java.awt.event.ActionListener; public class CalculatorListener implements ActionListener{ CalculatorWindow window; + double number1,number2; String fuhao; String Number1,Number2; + String Result; public void setWindow(CalculatorWindow window) { this.window=window; } public void actionPerformed(ActionEvent e) { String ss=e.getActionCommand(); - - window.jTextField.setText(ss); - - - - - + if(".0123456789".indexOf(ss)!=-1) + window.jTextField.setText(window.jTextField.getText()+ss); + else if(ss.equals("+")||ss.equals("-")||ss.equals("*")||ss.equals("/")||ss.equals("%")) { + fuhao=ss; + Number1=window.jTextField.getText(); + window.jTextField.setText(""); + + } + else if(ss.equals("=")){ + Double number1=Double.parseDouble(Number1); + Double number2=Double.parseDouble(window.jTextField.getText()); + Double result=0.0; + switch (fuhao) { + case"+": + result=this.number1+this.number2; + break; + case"-": + result=this.number1-this.number2; + } + String Result=result+""; + window.jTextField.setText(Result); + } } void calcutor() { double number1=Double.parseDouble(window.jTextField.getText()); double number2=Double.parseDouble(Number2); - double result; + double result=0; if(fuhao.equals("+")) { window.jTextField.setText(fuhao); result=number1+number2; @@ -45,7 +62,6 @@ public class CalculatorListener implements ActionListener{ } catch (Exception ex) { // TODO: handle exception - window.jTextField.setText(ex.getMessage()); } } @@ -53,8 +69,16 @@ public class CalculatorListener implements ActionListener{ window.jTextField.setText(fuhao); result=number1%number2; } + String resultString=String.valueOf(result); + window.jTextField.setText(resultString) ; + } + + public void back() { + + } - + public void clear() { + } } diff --git a/src/java2022spring/CalculatorWindow.java b/src/java2022spring/CalculatorWindow.java index 0c163b4..43e7105 100644 --- a/src/java2022spring/CalculatorWindow.java +++ b/src/java2022spring/CalculatorWindow.java @@ -1,8 +1,6 @@ package java2022spring; import java.awt.*; -import java.awt.BorderLayout; -import java.awt.GridLayout; -import java.awt.Panel; + import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; @@ -10,35 +8,25 @@ import javax.swing.JTabbedPane; import javax.swing.JTextField; public class CalculatorWindow extends JFrame{ - JTextField jTextField=new JTextField(20); - Panel panel1; JTabbedPane p1; - Panel panelCenter; - Panel panelNorth; - + JTextField jTextField=new JTextField(20);//创建文本框,显示数据的输入与输出 + Panel panel1; + Panel panelCenter;//用于放置数字与符号按钮 + Panel panelNorth;//用于放置清除按钮 + Panel panelWest;//用于放置功能按钮 CalculatorListener listener; String []strings= {"+","-","*","/"}; String fuhao; -//创建数字键1-9 - String Keys[]= {"1","2","3","4","5","6","7","8","9","0","+","-","*","/","=",".","x^2","%","sqrt"}; +//创建数字键0-9、符号和小数点键 + String Keys[]= {"","1","2","3","+","%","4","5","6","-","x^2","7","8","9","*","sqrt",".","0","=","/"}; JButton jb[]=new JButton[Keys.length]; - //创建清除键 - JButton jButton_shch=new JButton("←"); - JButton jButton_qchu=new JButton("C"); - JButton jButton_qchuall=new JButton("CE"); -//创建符号与小数点键 - - - - - JButton jButton_mc=new JButton("MC"); - JButton jButton_mr=new JButton("MR"); - JButton jButton_ms=new JButton("MS"); - JButton jButton_m=new JButton("M+"); - - + String qcKeys[]= {"←","C","CE"}; + JButton qcjb[]=new JButton[qcKeys.length]; +//创建功能键 + String gnKeys[]= {"MC","MR","MS","M+"}; + JButton gnjb[]=new JButton[gnKeys.length]; @@ -47,9 +35,10 @@ public class CalculatorWindow extends JFrame{ intf(); setVisible(true); setBounds(10,10,350,350); + setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); + setLocation(50, 50); } - void intf() { listener=new CalculatorListener(); listener.setWindow(this); @@ -63,6 +52,8 @@ public class CalculatorWindow extends JFrame{ p1=new JTabbedPane(); panel1=new Panel(); panel1.setLayout(new BorderLayout()); + + p1.add("计算器",panel1); panelCenter=new Panel(); panelCenter.setLayout(new GridLayout(4,4)); @@ -73,20 +64,34 @@ public class CalculatorWindow extends JFrame{ panelNorth.setLayout(new GridLayout(1,3)); panel1.add(panelNorth,BorderLayout.NORTH); - add(jTextField,BorderLayout.NORTH); + add(p1); add(panel1); + add(jTextField,BorderLayout.NORTH); + + + panelWest=new Panel(); + panelWest.setLayout(new GridLayout(4,1)); + panel1.add(panelWest,BorderLayout.WEST); + +//将数字按钮、清除按钮、功能按钮分别添加到中心面板、北面面板、西边面板中 for(int i=0;i Date: Sat, 28 May 2022 21:30:48 +0800 Subject: [PATCH 05/11] =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E4=BA=86=E6=B8=85?= =?UTF-8?q?=E9=99=A4=E9=94=AE=E7=9A=84=E4=BA=8B=E4=BB=B6=E5=A4=84=E7=90=86?= =?UTF-8?q?=EF=BC=8C=E4=BD=86=E5=BC=82=E5=B8=B8=E5=A4=84=E7=90=86=E8=BF=98?= =?UTF-8?q?=E4=B8=8D=E5=AE=8C=E5=96=84=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/CalculatorListener.java | 79 ++++++++++------------ src/java2022spring/CalculatorWindow.java | 6 ++ 2 files changed, 43 insertions(+), 42 deletions(-) diff --git a/src/java2022spring/CalculatorListener.java b/src/java2022spring/CalculatorListener.java index 693b085..fdbbdd3 100644 --- a/src/java2022spring/CalculatorListener.java +++ b/src/java2022spring/CalculatorListener.java @@ -3,6 +3,8 @@ package java2022spring; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import javax.swing.JButton; + public class CalculatorListener implements ActionListener{ CalculatorWindow window; double number1,number2; @@ -15,70 +17,63 @@ public class CalculatorListener implements ActionListener{ public void actionPerformed(ActionEvent e) { String ss=e.getActionCommand(); + String se=window.jTextField.getText(); if(".0123456789".indexOf(ss)!=-1) window.jTextField.setText(window.jTextField.getText()+ss); - else if(ss.equals("+")||ss.equals("-")||ss.equals("*")||ss.equals("/")||ss.equals("%")) { + else if(ss.equals("+")||ss.equals("-")||ss.equals("*")||ss.equals("/")||ss.equals("%")||ss.equals("%")||ss.equals("x^2")||ss.equals("sqrt")) { fuhao=ss; Number1=window.jTextField.getText(); window.jTextField.setText(""); - } else if(ss.equals("=")){ - Double number1=Double.parseDouble(Number1); - Double number2=Double.parseDouble(window.jTextField.getText()); - Double result=0.0; - switch (fuhao) { - case"+": - result=this.number1+this.number2; - break; - case"-": - result=this.number1-this.number2; - } - String Result=result+""; - window.jTextField.setText(Result); + calcutor(); + } + else if(ss.equals("←")) { + + } + else if(ss.equals("C")) { + clear(); } } void calcutor() { - double number1=Double.parseDouble(window.jTextField.getText()); - double number2=Double.parseDouble(Number2); - double result=0; - if(fuhao.equals("+")) { - window.jTextField.setText(fuhao); + Double number1=Double.parseDouble(Number1); + Double number2=Double.parseDouble(window.jTextField.getText()); + Double result=0.0; + switch (fuhao) { + case"+": result=number1+number2; - } - else if(fuhao.equals("-")) { - window.jTextField.setText(fuhao); + break; + case"-": result=number1-number2; - } - else if (fuhao.equals("*")) { - window.jTextField.setText(fuhao); + break; + case"*": result=number1*number2; - } - else if (fuhao.equals("/")) { - window.jTextField.setText(fuhao); + break; + case"/": try { - if(!(number2==0)) - result=number1/number2; + result=number1/number2; + break; } - catch (Exception ex) { + catch (Exception e2) { // TODO: handle exception - window.jTextField.setText(ex.getMessage()); + window.jTextField.setText("运算出错,除数不能为0"); } - } - else if(fuhao.equals("%")) { - window.jTextField.setText(fuhao); + case"%": result=number1%number2; + break; + case"x^2": + result=number1*number1; + break; + case"sqrt": + result=Math.sqrt(number1); + break; } - String resultString=String.valueOf(result); - window.jTextField.setText(resultString) ; - } - - public void back() { - + String Result=String.valueOf(result); + window.jTextField.setText(Result); } public void clear() { - + window.jTextField.setText(""); } } diff --git a/src/java2022spring/CalculatorWindow.java b/src/java2022spring/CalculatorWindow.java index 43e7105..a96bac6 100644 --- a/src/java2022spring/CalculatorWindow.java +++ b/src/java2022spring/CalculatorWindow.java @@ -45,6 +45,12 @@ public class CalculatorWindow extends JFrame{ for (int i = 0; i < jb.length; i++) { jb[i].addActionListener(listener); } + for (int i = 0; i < qcjb.length; i++) { + qcjb[i].addActionListener(listener); + } + for (int i = 0; i < gnjb.length; i++) { + gnjb[i].addActionListener(listener); + } } -- Gitee From 368ef24cee13a404900ac9b59c9c4dccfb623192 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=87=8C?= <鏉庨噷@DESKTOP-JFK4GTV> Date: Mon, 30 May 2022 23:21:40 +0800 Subject: [PATCH 06/11] =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E4=BA=86=E6=B8=85?= =?UTF-8?q?=E9=99=A4=E9=94=AE=E5=A4=84=E7=90=86=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/CalculatorListener.java | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/src/java2022spring/CalculatorListener.java b/src/java2022spring/CalculatorListener.java index fdbbdd3..890020d 100644 --- a/src/java2022spring/CalculatorListener.java +++ b/src/java2022spring/CalculatorListener.java @@ -16,8 +16,12 @@ public class CalculatorListener implements ActionListener{ } public void actionPerformed(ActionEvent e) { + String se=""; + if(window.jTextField.getText().length()>=1) + se=window.jTextField.getText().substring(0, window.jTextField.getText().length()-1); + String ss=e.getActionCommand(); - String se=window.jTextField.getText(); + if(".0123456789".indexOf(ss)!=-1) window.jTextField.setText(window.jTextField.getText()+ss); else if(ss.equals("+")||ss.equals("-")||ss.equals("*")||ss.equals("/")||ss.equals("%")||ss.equals("%")||ss.equals("x^2")||ss.equals("sqrt")) { @@ -29,7 +33,7 @@ public class CalculatorListener implements ActionListener{ calcutor(); } else if(ss.equals("←")) { - + window.jTextField.setText(se); } else if(ss.equals("C")) { clear(); @@ -50,14 +54,8 @@ public class CalculatorListener implements ActionListener{ result=number1*number2; break; case"/": - try { - result=number1/number2; - break; - } - catch (Exception e2) { - // TODO: handle exception - window.jTextField.setText("运算出错,除数不能为0"); - } + + case"%": result=number1%number2; break; -- Gitee From 616ee969fffad2badbe0a322653a9811487118f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=87=8C?= <鏉庨噷@DESKTOP-JFK4GTV> Date: Wed, 1 Jun 2022 23:15:12 +0800 Subject: [PATCH 07/11] =?UTF-8?q?=E5=B0=86=E9=99=A4=E6=95=B0=E4=B8=BA0?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E5=A4=84=E7=90=86=EF=BC=8C=E5=A4=A7=E6=A6=82?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E5=85=B6=E5=AE=83=E5=8A=9F=E8=83=BD=E9=94=AE?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/CalculatorListener.java | 63 ++++++++++++---------- 1 file changed, 36 insertions(+), 27 deletions(-) diff --git a/src/java2022spring/CalculatorListener.java b/src/java2022spring/CalculatorListener.java index 890020d..c681a2b 100644 --- a/src/java2022spring/CalculatorListener.java +++ b/src/java2022spring/CalculatorListener.java @@ -8,7 +8,7 @@ import javax.swing.JButton; public class CalculatorListener implements ActionListener{ CalculatorWindow window; double number1,number2; - String fuhao; + String fuhao,operator; String Number1,Number2; String Result; public void setWindow(CalculatorWindow window) { @@ -24,54 +24,63 @@ public class CalculatorListener implements ActionListener{ if(".0123456789".indexOf(ss)!=-1) window.jTextField.setText(window.jTextField.getText()+ss); - else if(ss.equals("+")||ss.equals("-")||ss.equals("*")||ss.equals("/")||ss.equals("%")||ss.equals("%")||ss.equals("x^2")||ss.equals("sqrt")) { + else if(ss.equals("+")||ss.equals("-")||ss.equals("*")||ss.equals("/")||ss.equals("%")||ss.equals("x^2")||ss.equals("sqrt")) { fuhao=ss; Number1=window.jTextField.getText(); window.jTextField.setText(""); } + else if(ss.equals("%")||ss.equals("x^2")||ss.equals("sqrt")) { + operator=ss; + Number1=window.jTextField.getText(); + window.jTextField.setText(""); + } else if(ss.equals("=")){ calcutor(); } else if(ss.equals("←")) { - window.jTextField.setText(se); + backspace(se); } - else if(ss.equals("C")) { + else if(ss.equals("C")||ss.equals("CE")) { clear(); } } void calcutor() { Double number1=Double.parseDouble(Number1); - Double number2=Double.parseDouble(window.jTextField.getText()); Double result=0.0; - switch (fuhao) { - case"+": - result=number1+number2; - break; - case"-": - result=number1-number2; - break; - case"*": - result=number1*number2; - break; - case"/": - - - case"%": - result=number1%number2; - break; - case"x^2": - result=number1*number1; - break; - case"sqrt": - result=Math.sqrt(number1); - break; + if(fuhao.equals("+")||fuhao.equals("-")||fuhao.equals("*")||fuhao.equals("/")) { + Double number2=Double.parseDouble(window.jTextField.getText()); + switch (fuhao) { + case"+": + result=number1+number2; + break; + case"-": + result=number1-number2; + break; + case"*": + result=number1*number2; + break; + case"/": + result=number1/number2; + break; + } + } + if(fuhao.equals("%")||fuhao.equals("x^2")||fuhao.equals("sqrt")) { + switch(fuhao) { + + } } String Result=String.valueOf(result); window.jTextField.setText(Result); + if(number2==0) { + window.jTextField.setText("除数不能为0!"); + } } public void clear() { window.jTextField.setText(""); } + public void backspace(String se) { + window.jTextField.setText(se); + } } -- Gitee From 361b43a02df53afd05988fa804491cd157075866 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=87=8C?= <鏉庨噷@DESKTOP-JFK4GTV> Date: Fri, 3 Jun 2022 21:12:28 +0800 Subject: [PATCH 08/11] =?UTF-8?q?=E7=AE=80=E7=95=A5=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E4=BA=86=E5=8A=9F=E8=83=BD=E9=94=AE=E7=9A=84=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=EF=BC=8C=E4=BB=A5=E5=8F=8A=E5=90=84=E7=A7=8D=E8=AE=A1=E7=AE=97?= =?UTF-8?q?=E6=8C=89=E9=92=AE=E7=9A=84=E8=AE=A1=E7=AE=97=E6=96=B9=E5=BC=8F?= =?UTF-8?q?=E5=8F=8A=E7=BB=93=E6=9E=9C=E6=98=BE=E7=A4=BA=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/CalculatorListener.java | 61 +++++++++++++++------- src/java2022spring/CalculatorWindow.java | 28 +++++----- 2 files changed, 59 insertions(+), 30 deletions(-) diff --git a/src/java2022spring/CalculatorListener.java b/src/java2022spring/CalculatorListener.java index c681a2b..fe8e6c5 100644 --- a/src/java2022spring/CalculatorListener.java +++ b/src/java2022spring/CalculatorListener.java @@ -11,28 +11,29 @@ public class CalculatorListener implements ActionListener{ String fuhao,operator; String Number1,Number2; String Result; + Double ms=0.0; public void setWindow(CalculatorWindow window) { this.window=window; } public void actionPerformed(ActionEvent e) { String se=""; - if(window.jTextField.getText().length()>=1) - se=window.jTextField.getText().substring(0, window.jTextField.getText().length()-1); + if(window.jTextArea.getText().length()>=1) + se=window.jTextArea.getText().substring(0, window.jTextArea.getText().length()-1); String ss=e.getActionCommand(); if(".0123456789".indexOf(ss)!=-1) - window.jTextField.setText(window.jTextField.getText()+ss); - else if(ss.equals("+")||ss.equals("-")||ss.equals("*")||ss.equals("/")||ss.equals("%")||ss.equals("x^2")||ss.equals("sqrt")) { + window.jTextArea.setText(window.jTextArea.getText()+ss); + else if(ss.equals("+")||ss.equals("-")||ss.equals("*")||ss.equals("/")) { fuhao=ss; - Number1=window.jTextField.getText(); - window.jTextField.setText(""); + Number1=window.jTextArea.getText(); + window.jTextArea.setText(""); } - else if(ss.equals("%")||ss.equals("x^2")||ss.equals("sqrt")) { - operator=ss; - Number1=window.jTextField.getText(); - window.jTextField.setText(""); + else if(ss.equals("%")||ss.equals("x^2")||ss.equals("sqrt")||ss.equals("1/x")) { + fuhao=ss; + Number1=window.jTextArea.getText(); + } else if(ss.equals("=")){ calcutor(); @@ -43,12 +44,23 @@ public class CalculatorListener implements ActionListener{ else if(ss.equals("C")||ss.equals("CE")) { clear(); } + else if(ss.equals("MS")) { + ms=Double.parseDouble(window.jTextArea.getText()); + } + else if(ss.equals("MR")) { + window.jTextArea.setText(String.valueOf(ms)); + + } + else if(ss.equals("MC")) { + ms=0.0; + } } void calcutor() { Double number1=Double.parseDouble(Number1); Double result=0.0; + if(fuhao.equals("+")||fuhao.equals("-")||fuhao.equals("*")||fuhao.equals("/")) { - Double number2=Double.parseDouble(window.jTextField.getText()); + Double number2=Double.parseDouble(window.jTextArea.getText()); switch (fuhao) { case"+": result=number1+number2; @@ -64,23 +76,36 @@ public class CalculatorListener implements ActionListener{ break; } } - if(fuhao.equals("%")||fuhao.equals("x^2")||fuhao.equals("sqrt")) { + else if(fuhao.equals("%")||fuhao.equals("x^2")||fuhao.equals("sqrt")||fuhao.equals("1/x")) { switch(fuhao) { - + case"%": + result=number1/100; + break; + case"x^2": + result=number1*number1; + break; + case"sqrt": + result=Math.sqrt(number1); + break; + case"1/x": + result=1/number1; + break; } } String Result=String.valueOf(result); - window.jTextField.setText(Result); - if(number2==0) { - window.jTextField.setText("除数不能为0!"); + window.jTextArea.setText(Result); + if(fuhao.equals("/")) { + if(number2==0) { + window.jTextArea.setText("除数不能为0!"); + } } } public void clear() { - window.jTextField.setText(""); + window.jTextArea.setText(""); } public void backspace(String se) { - window.jTextField.setText(se); + window.jTextArea.setText(se); } } diff --git a/src/java2022spring/CalculatorWindow.java b/src/java2022spring/CalculatorWindow.java index a96bac6..4fcdc45 100644 --- a/src/java2022spring/CalculatorWindow.java +++ b/src/java2022spring/CalculatorWindow.java @@ -5,12 +5,16 @@ import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTabbedPane; +import javax.swing.JTextArea; import javax.swing.JTextField; public class CalculatorWindow extends JFrame{ JTabbedPane p1; - JTextField jTextField=new JTextField(20);//创建文本框,显示数据的输入与输出 + JTextArea jTextArea=new JTextArea(2, 1); + //JTextField jTextField=new JTextField(20);//创建文本框,显示数据的输入与输出 + JTextField jTextField2=new JTextField(20); Panel panel1; + Panel panel2;//用于放置文本框 Panel panelCenter;//用于放置数字与符号按钮 Panel panelNorth;//用于放置清除按钮 Panel panelWest;//用于放置功能按钮 @@ -19,7 +23,7 @@ public class CalculatorWindow extends JFrame{ String []strings= {"+","-","*","/"}; String fuhao; //创建数字键0-9、符号和小数点键 - String Keys[]= {"","1","2","3","+","%","4","5","6","-","x^2","7","8","9","*","sqrt",".","0","=","/"}; + String Keys[]= {"1/x","1","2","3","+","%","4","5","6","-","x^2","7","8","9","*","sqrt",".","0","=","/"}; JButton jb[]=new JButton[Keys.length]; //创建清除键 String qcKeys[]= {"←","C","CE"}; @@ -58,30 +62,32 @@ public class CalculatorWindow extends JFrame{ p1=new JTabbedPane(); panel1=new Panel(); panel1.setLayout(new BorderLayout()); - + panel2=new Panel(); + panel2.setLayout(new BorderLayout()); p1.add("计算器",panel1); panelCenter=new Panel(); panelCenter.setLayout(new GridLayout(4,4)); panel1.add(panelCenter,BorderLayout.CENTER); - panelNorth=new Panel(); panelNorth.setLayout(new GridLayout(1,3)); panel1.add(panelNorth,BorderLayout.NORTH); - add(p1); add(panel1); - add(jTextField,BorderLayout.NORTH); - - - + add(panel2,BorderLayout.NORTH); + //panel2.add(jTextField,BorderLayout.CENTER); + panel2.add(jTextField2,BorderLayout.NORTH); + panel2.add(jTextArea,BorderLayout.CENTER); panelWest=new Panel(); panelWest.setLayout(new GridLayout(4,1)); panel1.add(panelWest,BorderLayout.WEST); + + + //将数字按钮、清除按钮、功能按钮分别添加到中心面板、北面面板、西边面板中 for(int i=0;i Date: Sun, 5 Jun 2022 22:01:05 +0800 Subject: [PATCH 09/11] =?UTF-8?q?=E5=9F=BA=E6=9C=AC=E5=AE=8C=E6=88=90?= =?UTF-8?q?=E6=95=B4=E4=BD=93=E8=AE=BE=E7=BD=AE=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/CalculatorListener.java | 118 +++++++++++++-------- src/java2022spring/CalculatorWindow.java | 114 ++++++++++---------- src/java2022spring/calculator.java | 1 - 3 files changed, 132 insertions(+), 101 deletions(-) diff --git a/src/java2022spring/CalculatorListener.java b/src/java2022spring/CalculatorListener.java index fe8e6c5..8171dc8 100644 --- a/src/java2022spring/CalculatorListener.java +++ b/src/java2022spring/CalculatorListener.java @@ -1,8 +1,9 @@ package java2022spring; +import java.awt.Button; +import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; - import javax.swing.JButton; public class CalculatorListener implements ActionListener{ @@ -11,56 +12,74 @@ public class CalculatorListener implements ActionListener{ String fuhao,operator; String Number1,Number2; String Result; + String MS; Double ms=0.0; + public void setWindow(CalculatorWindow window) { this.window=window; } public void actionPerformed(ActionEvent e) { + String se=""; - if(window.jTextArea.getText().length()>=1) - se=window.jTextArea.getText().substring(0, window.jTextArea.getText().length()-1); + if(window.jTextField.getText().length()>=1) { + se=window.jTextField.getText().substring(0, window.jTextField.getText().length()-1); + } + + String ss=e.getActionCommand(); + + if(".0123456789".indexOf(ss)!=-1) + window.jTextField.setText(window.jTextField.getText()+ss); + else if(ss.equals("+")||ss.equals("-")||ss.equals("*")||ss.equals("/")) { + fuhao=ss; + Number1=window.jTextField.getText(); + window.jTextField.setText(""); + } + else if(ss.equals("%")||ss.equals("^2")||ss.equals("√")||ss.equals("1/x")) { + fuhao=ss; + Number1=window.jTextField.getText(); + } + else if(ss.equals("=")){ + calcutor(); + } + else if(ss.equals("←")) { + backspace(se); + } + else if(ss.equals("CE")) { + ce_clear(); + } + else if(ss.equals("C")) { + c_clear(); + } + else if(ss.equals("MS")) { + ms=Double.parseDouble(window.jTextField.getText()); + window.jTextField2.setText("M"+"="+ms); + } + else if(ss.equals("MR")) { + window.jTextField.setText(String.valueOf(ms)); + } + else if(ss.equals("M+")) { + MS=window.jTextField.getText(); + ms+=Double.parseDouble(MS); + window.jTextField2.setText("M"+"="+ms); + } + else if(ss.equals("M-")){ + MS=window.jTextField.getText(); + ms-=Double.parseDouble(MS); + window.jTextField2.setText("M"+"="+ms); + } + else if(ss.equals("MC")) { + ms=0.0; + window.jTextField2.setText(""); + } - String ss=e.getActionCommand(); - - if(".0123456789".indexOf(ss)!=-1) - window.jTextArea.setText(window.jTextArea.getText()+ss); - else if(ss.equals("+")||ss.equals("-")||ss.equals("*")||ss.equals("/")) { - fuhao=ss; - Number1=window.jTextArea.getText(); - window.jTextArea.setText(""); - } - else if(ss.equals("%")||ss.equals("x^2")||ss.equals("sqrt")||ss.equals("1/x")) { - fuhao=ss; - Number1=window.jTextArea.getText(); - - } - else if(ss.equals("=")){ - calcutor(); - } - else if(ss.equals("←")) { - backspace(se); - } - else if(ss.equals("C")||ss.equals("CE")) { - clear(); - } - else if(ss.equals("MS")) { - ms=Double.parseDouble(window.jTextArea.getText()); - } - else if(ss.equals("MR")) { - window.jTextArea.setText(String.valueOf(ms)); - - } - else if(ss.equals("MC")) { - ms=0.0; - } } + void calcutor() { Double number1=Double.parseDouble(Number1); Double result=0.0; - if(fuhao.equals("+")||fuhao.equals("-")||fuhao.equals("*")||fuhao.equals("/")) { - Double number2=Double.parseDouble(window.jTextArea.getText()); + Double number2=Double.parseDouble(window.jTextField.getText()); switch (fuhao) { case"+": result=number1+number2; @@ -74,9 +93,10 @@ public class CalculatorListener implements ActionListener{ case"/": result=number1/number2; break; + default:window.jTextField.setText("请输入正确的数据!"); } } - else if(fuhao.equals("%")||fuhao.equals("x^2")||fuhao.equals("sqrt")||fuhao.equals("1/x")) { + else if(fuhao.equals("%")||fuhao.equals("^2")||fuhao.equals("√")||fuhao.equals("1/x")) { switch(fuhao) { case"%": result=number1/100; @@ -90,22 +110,32 @@ public class CalculatorListener implements ActionListener{ case"1/x": result=1/number1; break; + default:window.jTextField.setText("请输入正确的数据!"); } + } + String Result=String.valueOf(result); - window.jTextArea.setText(Result); + window.jTextField.setText(Result); if(fuhao.equals("/")) { if(number2==0) { - window.jTextArea.setText("除数不能为0!"); + window.jTextField2.setText("除数不能为0!"); } } } + + public void ce_clear() { + window.jTextField.setText(""); + } - public void clear() { - window.jTextArea.setText(""); + public void c_clear() { + window.jTextField.setText(""); + window.jTextField2.setText(""); + ms=0.0; } + public void backspace(String se) { - window.jTextArea.setText(se); + window.jTextField.setText(se); } } diff --git a/src/java2022spring/CalculatorWindow.java b/src/java2022spring/CalculatorWindow.java index 4fcdc45..f29f592 100644 --- a/src/java2022spring/CalculatorWindow.java +++ b/src/java2022spring/CalculatorWindow.java @@ -1,6 +1,6 @@ package java2022spring; -import java.awt.*; +import java.awt.*; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; @@ -9,45 +9,40 @@ import javax.swing.JTextArea; import javax.swing.JTextField; public class CalculatorWindow extends JFrame{ - JTabbedPane p1; - JTextArea jTextArea=new JTextArea(2, 1); - //JTextField jTextField=new JTextField(20);//创建文本框,显示数据的输入与输出 - JTextField jTextField2=new JTextField(20); - Panel panel1; - Panel panel2;//用于放置文本框 + JTextField jTextField=new JTextField(20);//创建文本框,显示数据的输入与输出 + JTextField jTextField2=new JTextField(10);//创建文本框,输出提示 + Panel panel1;//用于放置按钮 + Panel panel2;//用于放置显示文本框和提示文本框 Panel panelCenter;//用于放置数字与符号按钮 Panel panelNorth;//用于放置清除按钮 Panel panelWest;//用于放置功能按钮 CalculatorListener listener; - String []strings= {"+","-","*","/"}; - String fuhao; //创建数字键0-9、符号和小数点键 - String Keys[]= {"1/x","1","2","3","+","%","4","5","6","-","x^2","7","8","9","*","sqrt",".","0","=","/"}; + String Keys[]= {"1/x","1","2","3","+","%","4","5","6","-","^2","7","8","9","*","√",".","0","=","/"}; JButton jb[]=new JButton[Keys.length]; //创建清除键 String qcKeys[]= {"←","C","CE"}; JButton qcjb[]=new JButton[qcKeys.length]; //创建功能键 - String gnKeys[]= {"MC","MR","MS","M+"}; + String gnKeys[]= {"MC","MR","MS","M+","M-"}; JButton gnjb[]=new JButton[gnKeys.length]; - - public CalculatorWindow() { - inttf(); - intf(); - setVisible(true); - setBounds(10,10,350,350); - setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); - setLocation(50, 50); + setVisible(true);//设置窗口可见 + setBounds(500,200,500,400);//设置窗口位置和大小 + setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);//设置窗口关闭形式 + setBackground(Color.gray); + tjsz(); + tjjtq(); } - void intf() { + void tjjtq() {//将button添加为事件源 listener=new CalculatorListener(); listener.setWindow(this); for (int i = 0; i < jb.length; i++) { jb[i].addActionListener(listener); + } for (int i = 0; i < qcjb.length; i++) { qcjb[i].addActionListener(listener); @@ -58,52 +53,59 @@ public class CalculatorWindow extends JFrame{ } - void inttf() { - p1=new JTabbedPane(); + void tjsz() { +//添加面板1,用于放置数字和清除按钮 panel1=new Panel(); panel1.setLayout(new BorderLayout()); + add(panel1,BorderLayout.CENTER);//位于窗口中心 + panel1.setPreferredSize(new Dimension(350,300)); +//添加面板2,用于放置显示文本框和提示文本框 panel2=new Panel(); panel2.setLayout(new BorderLayout()); - - p1.add("计算器",panel1); - panelCenter=new Panel(); - panelCenter.setLayout(new GridLayout(4,4)); - panel1.add(panelCenter,BorderLayout.CENTER); - - panelNorth=new Panel(); - panelNorth.setLayout(new GridLayout(1,3)); - panel1.add(panelNorth,BorderLayout.NORTH); - - add(p1); - add(panel1); - add(panel2,BorderLayout.NORTH); - //panel2.add(jTextField,BorderLayout.CENTER); - panel2.add(jTextField2,BorderLayout.NORTH); - panel2.add(jTextArea,BorderLayout.CENTER); - + add(panel2,BorderLayout.NORTH);//位于窗口北面 + panel2.add(jTextField,BorderLayout.CENTER);//显示文本框 + panel2.add(jTextField2,BorderLayout.NORTH);//提示文本框 + panel2.setPreferredSize(new Dimension(500,80)); + jTextField.setPreferredSize(new Dimension(500,40)); + jTextField2.setPreferredSize(new Dimension(500,30)); + jTextField.setHorizontalAlignment(jTextField.RIGHT); + jTextField.setFont(new Font("宋体", Font.BOLD, 30)); + jTextField2.setHorizontalAlignment(jTextField.RIGHT); + jTextField2.setFont(new Font("微软雅黑", Font.BOLD, 12)); +//西面面板,放置功能按钮 panelWest=new Panel(); - panelWest.setLayout(new GridLayout(4,1)); - panel1.add(panelWest,BorderLayout.WEST); - - - - -//将数字按钮、清除按钮、功能按钮分别添加到中心面板、北面面板、西边面板中 + panelWest.setLayout(new GridLayout(5,1)); + add(panelWest,BorderLayout.WEST);//位于窗口西面 + panelWest.setPreferredSize(new Dimension(80,300)); + for(int i=0;i Date: Mon, 6 Jun 2022 16:47:34 +0800 Subject: [PATCH 10/11] =?UTF-8?q?=E5=AE=8C=E6=88=90=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/CalculatorListener.java | 44 +++++++++++----------- src/java2022spring/CalculatorWindow.java | 21 +++++------ 2 files changed, 33 insertions(+), 32 deletions(-) diff --git a/src/java2022spring/CalculatorListener.java b/src/java2022spring/CalculatorListener.java index 8171dc8..7715d5f 100644 --- a/src/java2022spring/CalculatorListener.java +++ b/src/java2022spring/CalculatorListener.java @@ -20,16 +20,15 @@ public class CalculatorListener implements ActionListener{ } public void actionPerformed(ActionEvent e) { - String se=""; if(window.jTextField.getText().length()>=1) { + //提取文本框前length-1位字符 se=window.jTextField.getText().substring(0, window.jTextField.getText().length()-1); } String ss=e.getActionCommand(); - - if(".0123456789".indexOf(ss)!=-1) - window.jTextField.setText(window.jTextField.getText()+ss); + if(".0123456789".indexOf(ss)!=-1)//方法参考网络 + window.jTextField.setText(window.jTextField.getText()+ss);//输入数字 else if(ss.equals("+")||ss.equals("-")||ss.equals("*")||ss.equals("/")) { fuhao=ss; Number1=window.jTextField.getText(); @@ -40,7 +39,7 @@ public class CalculatorListener implements ActionListener{ Number1=window.jTextField.getText(); } else if(ss.equals("=")){ - calcutor(); + calcutor();//等号则计算 } else if(ss.equals("←")) { backspace(se); @@ -53,7 +52,7 @@ public class CalculatorListener implements ActionListener{ } else if(ss.equals("MS")) { ms=Double.parseDouble(window.jTextField.getText()); - window.jTextField2.setText("M"+"="+ms); + window.jTextField2.setText("M"+"="+ms);//输出储存于提示文本框 } else if(ss.equals("MR")) { window.jTextField.setText(String.valueOf(ms)); @@ -72,7 +71,6 @@ public class CalculatorListener implements ActionListener{ ms=0.0; window.jTextField2.setText(""); } - } void calcutor() { @@ -80,7 +78,7 @@ public class CalculatorListener implements ActionListener{ Double result=0.0; if(fuhao.equals("+")||fuhao.equals("-")||fuhao.equals("*")||fuhao.equals("/")) { Double number2=Double.parseDouble(window.jTextField.getText()); - switch (fuhao) { + switch (fuhao) {//分支实现不同符号的计算方法 case"+": result=number1+number2; break; @@ -92,12 +90,17 @@ public class CalculatorListener implements ActionListener{ break; case"/": result=number1/number2; + if(fuhao.equals("/")) {//除数不为0处理 + if(number2==0) { + window.jTextField2.setText("除数不能为0!"); + } + } break; default:window.jTextField.setText("请输入正确的数据!"); } } else if(fuhao.equals("%")||fuhao.equals("^2")||fuhao.equals("√")||fuhao.equals("1/x")) { - switch(fuhao) { + switch(fuhao) {//分支实现不同符号的计算方法 case"%": result=number1/100; break; @@ -109,32 +112,31 @@ public class CalculatorListener implements ActionListener{ break; case"1/x": result=1/number1; + if(fuhao.equals("1/x")) {//分母不为0处理 + if (number1==0) { + window.jTextField2.setText("倒数分母不能为0!"); + } + } break; default:window.jTextField.setText("请输入正确的数据!"); - } - + } } - String Result=String.valueOf(result); - window.jTextField.setText(Result); - if(fuhao.equals("/")) { - if(number2==0) { - window.jTextField2.setText("除数不能为0!"); - } - } + String Result=String.valueOf(result);//将double型转化成String型 + window.jTextField.setText(Result);//输出结果 } - public void ce_clear() { + public void ce_clear() {//CE方法 window.jTextField.setText(""); } - public void c_clear() { + public void c_clear() {//C方法 window.jTextField.setText(""); window.jTextField2.setText(""); ms=0.0; } - public void backspace(String se) { + public void backspace(String se) {//退位方法 window.jTextField.setText(se); } } diff --git a/src/java2022spring/CalculatorWindow.java b/src/java2022spring/CalculatorWindow.java index f29f592..873a941 100644 --- a/src/java2022spring/CalculatorWindow.java +++ b/src/java2022spring/CalculatorWindow.java @@ -42,7 +42,6 @@ public class CalculatorWindow extends JFrame{ listener.setWindow(this); for (int i = 0; i < jb.length; i++) { jb[i].addActionListener(listener); - } for (int i = 0; i < qcjb.length; i++) { qcjb[i].addActionListener(listener); @@ -58,20 +57,20 @@ public class CalculatorWindow extends JFrame{ panel1=new Panel(); panel1.setLayout(new BorderLayout()); add(panel1,BorderLayout.CENTER);//位于窗口中心 - panel1.setPreferredSize(new Dimension(350,300)); + panel1.setPreferredSize(new Dimension(350,300));//设置大小 //添加面板2,用于放置显示文本框和提示文本框 panel2=new Panel(); panel2.setLayout(new BorderLayout()); add(panel2,BorderLayout.NORTH);//位于窗口北面 panel2.add(jTextField,BorderLayout.CENTER);//显示文本框 panel2.add(jTextField2,BorderLayout.NORTH);//提示文本框 - panel2.setPreferredSize(new Dimension(500,80)); + panel2.setPreferredSize(new Dimension(500,90));//设置大小 jTextField.setPreferredSize(new Dimension(500,40)); - jTextField2.setPreferredSize(new Dimension(500,30)); - jTextField.setHorizontalAlignment(jTextField.RIGHT); - jTextField.setFont(new Font("宋体", Font.BOLD, 30)); - jTextField2.setHorizontalAlignment(jTextField.RIGHT); - jTextField2.setFont(new Font("微软雅黑", Font.BOLD, 12)); + jTextField2.setPreferredSize(new Dimension(500,40)); + jTextField.setHorizontalAlignment(jTextField.RIGHT);//显示文本框右对齐 + jTextField.setFont(new Font("宋体", Font.BOLD, 30));//设置字体 + jTextField2.setHorizontalAlignment(jTextField.RIGHT);//提示文本框右对齐 + jTextField2.setFont(new Font("微软雅黑", Font.BOLD, 13));//设置字体 //西面面板,放置功能按钮 panelWest=new Panel(); panelWest.setLayout(new GridLayout(5,1)); @@ -80,7 +79,7 @@ public class CalculatorWindow extends JFrame{ for(int i=0;i Date: Mon, 6 Jun 2022 22:54:22 +0800 Subject: [PATCH 11/11] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=83=A8=E5=88=86?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=EF=BC=8C=E5=AE=8C=E6=88=90=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/CalculatorListener.java | 8 ++++---- src/java2022spring/CalculatorWindow.java | 1 + 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/java2022spring/CalculatorListener.java b/src/java2022spring/CalculatorListener.java index 7715d5f..2a3d55e 100644 --- a/src/java2022spring/CalculatorListener.java +++ b/src/java2022spring/CalculatorListener.java @@ -21,7 +21,7 @@ public class CalculatorListener implements ActionListener{ public void actionPerformed(ActionEvent e) { String se=""; - if(window.jTextField.getText().length()>=1) { + if(window.jTextField.getText().length()>=1) {//条件参考网络 //提取文本框前length-1位字符 se=window.jTextField.getText().substring(0, window.jTextField.getText().length()-1); } @@ -39,7 +39,7 @@ public class CalculatorListener implements ActionListener{ Number1=window.jTextField.getText(); } else if(ss.equals("=")){ - calcutor();//等号则计算 + calculate();//等号则计算 } else if(ss.equals("←")) { backspace(se); @@ -73,7 +73,7 @@ public class CalculatorListener implements ActionListener{ } } - void calcutor() { + void calculate() { Double number1=Double.parseDouble(Number1); Double result=0.0; if(fuhao.equals("+")||fuhao.equals("-")||fuhao.equals("*")||fuhao.equals("/")) { @@ -107,7 +107,7 @@ public class CalculatorListener implements ActionListener{ case"x^2": result=number1*number1; break; - case"sqrt": + case"√": result=Math.sqrt(number1); break; case"1/x": diff --git a/src/java2022spring/CalculatorWindow.java b/src/java2022spring/CalculatorWindow.java index 873a941..25babba 100644 --- a/src/java2022spring/CalculatorWindow.java +++ b/src/java2022spring/CalculatorWindow.java @@ -32,6 +32,7 @@ public class CalculatorWindow extends JFrame{ setVisible(true);//设置窗口可见 setBounds(500,200,500,400);//设置窗口位置和大小 setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);//设置窗口关闭形式 + setResizable(false);//固定窗口大小 setBackground(Color.gray); tjsz(); tjjtq(); -- Gitee