From 3c42a5ea53dd2aa9aa1ed54360b4ea4d3d897837 Mon Sep 17 00:00:00 2001 From: 86134 <86134@LAPTOP-291124V5> Date: Wed, 8 Jun 2022 11:12:29 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E6=88=91=E6=98=AF=E4=BF=A1=E7=AE=A14?= =?UTF-8?q?=E7=8F=AD=E7=9A=84=E6=9D=A8=E5=BC=80=E6=B3=B0=EF=BC=8C=E6=8F=90?= =?UTF-8?q?=E4=BA=A4=E6=9C=AC=E6=AC=A1=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- readme.md | 2 - src/java2022spring/Calculate.java | 108 ++++++++++++++++++ .../{Test.java => MainClass.java} | 6 +- 3 files changed, 112 insertions(+), 4 deletions(-) delete mode 100644 readme.md create mode 100644 src/java2022spring/Calculate.java rename src/java2022spring/{Test.java => MainClass.java} (51%) diff --git a/readme.md b/readme.md deleted file mode 100644 index 4af16ad..0000000 --- a/readme.md +++ /dev/null @@ -1,2 +0,0 @@ -# 科学计算器 -0103 张三 \ No newline at end of file diff --git a/src/java2022spring/Calculate.java b/src/java2022spring/Calculate.java new file mode 100644 index 0000000..049ba02 --- /dev/null +++ b/src/java2022spring/Calculate.java @@ -0,0 +1,108 @@ +package java2022spring; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.Color; +import javax.swing.*; + +public class Calculate extends JFrame{ + JFrame frame=new JFrame("calculator"); + JPanel panel,panel2; + JTextField textfield; + Container con; + JButton number[],backspace,sqrt,fuhao[],point,pingfang,qiuyu,equal,zhengfu,daoshu; + JButton Backspace,C,CE; + String string1; + double num1,num2; + double t=0; + char oper; + Color color; + public Calculate() { + init(); + frame.setSize(500,400); + frame.setVisible(true); + frame.setResizable(false); + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + + } + + void init(){ + textfield=new JTextField(); + textfield.setPreferredSize(new Dimension (200,70)); + Font font=new Font("黑体",Font.PLAIN,50); + Font font1=new Font("黑体",Font.PLAIN,25); + textfield.setFont(font); + panel=new JPanel(); + panel2=new JPanel(); + color=new Color(252,232,234); + + con=frame.getContentPane(); + con.setBackground(Color.white); + + number=new JButton[10]; + for(int i=0;i Date: Wed, 8 Jun 2022 13:39:52 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E7=AC=AC=E4=BA=8C?= =?UTF-8?q?=E6=AC=A1=EF=BC=8C=E8=BF=99=E6=AC=A1=E4=BF=AE=E6=94=B9=E4=BA=86?= =?UTF-8?q?=E4=B8=80=E4=B8=8B=E9=A2=9C=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/Calculate.java | 32 +++++++++++++++++++++++++------ 1 file changed, 26 insertions(+), 6 deletions(-) diff --git a/src/java2022spring/Calculate.java b/src/java2022spring/Calculate.java index 049ba02..fd0195c 100644 --- a/src/java2022spring/Calculate.java +++ b/src/java2022spring/Calculate.java @@ -2,7 +2,7 @@ package java2022spring; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -import java.awt.Color; + import javax.swing.*; public class Calculate extends JFrame{ @@ -14,7 +14,6 @@ public class Calculate extends JFrame{ JButton Backspace,C,CE; String string1; double num1,num2; - double t=0; char oper; Color color; public Calculate() { @@ -23,7 +22,8 @@ public class Calculate extends JFrame{ frame.setVisible(true); frame.setResizable(false); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - + textfield.setEditable(false); //设置文本框为不可编辑 + textfield.setBackground(color); //设置文本框的背景颜色 } void init(){ @@ -32,6 +32,7 @@ public class Calculate extends JFrame{ Font font=new Font("黑体",Font.PLAIN,50); Font font1=new Font("黑体",Font.PLAIN,25); textfield.setFont(font); + textfield.setBackground(color); panel=new JPanel(); panel2=new JPanel(); color=new Color(252,232,234); @@ -42,6 +43,7 @@ public class Calculate extends JFrame{ number=new JButton[10]; for(int i=0;i Date: Wed, 8 Jun 2022 16:26:33 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E6=B3=A8=E5=86=8C=E7=9B=91=E5=90=AC?= =?UTF-8?q?=E5=99=A8=EF=BC=88=E4=BD=86=E6=9C=AA=E5=AE=8C=E6=88=90=E5=87=BD?= =?UTF-8?q?=E6=95=B0=E7=9A=84=E6=9E=84=E5=BB=BA=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/Calculate.java | 55 +++++++++++++++++++++++++++++-- 1 file changed, 53 insertions(+), 2 deletions(-) diff --git a/src/java2022spring/Calculate.java b/src/java2022spring/Calculate.java index fd0195c..34ce151 100644 --- a/src/java2022spring/Calculate.java +++ b/src/java2022spring/Calculate.java @@ -5,6 +5,17 @@ import java.awt.event.ActionListener; import javax.swing.*; +import calculation.Calculate.BackSpaceListener; +import calculation.Calculate.CEListener; +import calculation.Calculate.CListener; +import calculation.Calculate.DSListener; +import calculation.Calculate.EqualListener; +import calculation.Calculate.FigureListener; +import calculation.Calculate.OperListener; +import calculation.Calculate.PFListener; +import calculation.Calculate.SqrtListener; +import calculation.Calculate.ZhengFuListener; + public class Calculate extends JFrame{ JFrame frame=new JFrame("calculator"); JPanel panel,panel2; @@ -13,8 +24,8 @@ public class Calculate extends JFrame{ JButton number[],backspace,sqrt,fuhao[],point,pingfang,qiuyu,equal,zhengfu,daoshu; JButton Backspace,C,CE; String string1; - double num1,num2; - char oper; + double num1,num2; //用来存放计算的数值 + char oper; //存放操作符 Color color; public Calculate() { init(); @@ -123,6 +134,46 @@ public class Calculate extends JFrame{ //更改组件的颜色 panel.setBackground(color); panel2.setBackground(color); + /* + * 注册监听器 + */ + //数字 + FigureListener figurelistener=new FigureListener(); + for(int i=0;i Date: Wed, 8 Jun 2022 17:50:38 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BA=864=E4=B8=AA?= =?UTF-8?q?=E7=B4=AF=E5=8A=A0=E7=AC=A6=E5=8F=B7M+=E3=80=81M-=E3=80=81MC?= =?UTF-8?q?=E3=80=81MR?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/Calculate.java | 49 +++++++++++++++++++++---------- 1 file changed, 34 insertions(+), 15 deletions(-) diff --git a/src/java2022spring/Calculate.java b/src/java2022spring/Calculate.java index 34ce151..de514f6 100644 --- a/src/java2022spring/Calculate.java +++ b/src/java2022spring/Calculate.java @@ -5,24 +5,14 @@ import java.awt.event.ActionListener; import javax.swing.*; -import calculation.Calculate.BackSpaceListener; -import calculation.Calculate.CEListener; -import calculation.Calculate.CListener; -import calculation.Calculate.DSListener; -import calculation.Calculate.EqualListener; -import calculation.Calculate.FigureListener; -import calculation.Calculate.OperListener; -import calculation.Calculate.PFListener; -import calculation.Calculate.SqrtListener; -import calculation.Calculate.ZhengFuListener; - public class Calculate extends JFrame{ JFrame frame=new JFrame("calculator"); - JPanel panel,panel2; + JPanel panel,panel2,panel3; JTextField textfield; Container con; JButton number[],backspace,sqrt,fuhao[],point,pingfang,qiuyu,equal,zhengfu,daoshu; JButton Backspace,C,CE; + JButton M1,M2,M3,M4; String string1; double num1,num2; //用来存放计算的数值 char oper; //存放操作符 @@ -46,6 +36,7 @@ public class Calculate extends JFrame{ textfield.setBackground(color); panel=new JPanel(); panel2=new JPanel(); + panel3=new JPanel(); color=new Color(252,232,234); con=frame.getContentPane(); @@ -54,7 +45,7 @@ public class Calculate extends JFrame{ number=new JButton[10]; for(int i=0;i Date: Wed, 8 Jun 2022 19:32:06 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E5=AE=8C=E6=88=90=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/Calculate.java | 191 +++++++++++++++++++++++++++++- 1 file changed, 188 insertions(+), 3 deletions(-) diff --git a/src/java2022spring/Calculate.java b/src/java2022spring/Calculate.java index de514f6..0de8fa1 100644 --- a/src/java2022spring/Calculate.java +++ b/src/java2022spring/Calculate.java @@ -14,9 +14,11 @@ public class Calculate extends JFrame{ JButton Backspace,C,CE; JButton M1,M2,M3,M4; String string1; - double num1,num2; //用来存放计算的数值 - char oper; //存放操作符 - Color color; + double num1,num2; //用来存放计算的数值 + double num3; //临时存放用来累加运算的数字 + private double figure=0; //存放M的数字 + char oper; //存放操作符 + Color color; //更改背景颜色 public Calculate() { init(); frame.setSize(500,400); @@ -54,6 +56,8 @@ public class Calculate extends JFrame{ fuhao[1]=new JButton("-"); fuhao[2]=new JButton("*"); fuhao[3]=new JButton("/"); + for(int i=0;i0) + textfield.setText("-"+num1); + else if(num1<0) + textfield.setText(""+-1*num1); + else { + + } + } + + } + //平方根监视器 + class SqrtListener implements ActionListener{ + + @Override + public void actionPerformed(ActionEvent e) { + // TODO 自动生成的方法存根 + num1=Double.parseDouble(textfield.getText()); + textfield.setText(""+Math.sqrt(num1)); + } + + } + //平方监视器 + class PFListener implements ActionListener{ + + @Override + public void actionPerformed(ActionEvent e) { + // TODO 自动生成的方法存根 + num1=Double.parseDouble(textfield.getText()); + textfield.setText(""+num1*num1); + } + } + //倒数监视器 + class DSListener implements ActionListener{ + + @Override + public void actionPerformed(ActionEvent e) { + // TODO 自动生成的方法存根 + num1=Double.parseDouble(textfield.getText()); + textfield.setText(""+1/num1); + } + + } + //CE监视器 + class CEListener implements ActionListener{ + + @Override + public void actionPerformed(ActionEvent e) { + // TODO 自动生成的方法存根 + textfield.setText(""); + } + + } + //退格键监视器 + class BackSpaceListener implements ActionListener{ + + @Override + public void actionPerformed(ActionEvent e) { + // TODO 自动生成的方法存根 + string1=textfield.getText(); + string1=string1.substring(0,string1.length()-1); + textfield.setText(string1); + } + + } + //C清除键监视器 + class CListener implements ActionListener{ + + @Override + public void actionPerformed(ActionEvent e) { + // TODO 自动生成的方法存根 + oper='\0'; + textfield.setText(""); + } + + } + //操作符监听器 + class OperListener implements ActionListener{ + + @Override + public void actionPerformed(ActionEvent e) { + // TODO 自动生成的方法存根 + num1=Double.parseDouble(textfield.getText()); + oper=e.getActionCommand().charAt(0); + textfield.setText(""); + } + + } + //等于监听器 + class EqualListener implements ActionListener{ + + @Override + public void actionPerformed(ActionEvent e) { + // TODO 自动生成的方法存根 + double result=0; + num2=Double.parseDouble(textfield.getText()); + switch(oper) { + case '+':result=num1+num2;break; + case '-':result=num1-num2;break; + case '*':result=num1*num2;break; + case '/':if(num2!=0) { + result=num1/num2; + break; + } + else { + textfield.setText("警告:除数不能为0"); + return ; + } + case '%':result=num1%num2;break; + } + textfield.setText(""+result); + } + + } + //M+监听器 + class M1Listener implements ActionListener{ + + @Override + public void actionPerformed(ActionEvent e) { + // TODO 自动生成的方法存根 + string1=textfield.getText(); + num3=Double.parseDouble(textfield.getText()); + figure=figure+num3; + textfield.setText(string1); + } + + } + //M-监听器 + class M2Listener implements ActionListener{ + + @Override + public void actionPerformed(ActionEvent e) { + // TODO 自动生成的方法存根 + string1=textfield.getText(); + num3=Double.parseDouble(textfield.getText()); + figure=figure-num3; + textfield.setText(string1); + } + + } + //MR监听器 + class M3Listener implements ActionListener{ + + @Override + public void actionPerformed(ActionEvent e) { + // TODO 自动生成的方法存根 + textfield.setText(""+figure); + } + + } + //MC监听器 + class M4Listener implements ActionListener{ + + @Override + public void actionPerformed(ActionEvent e) { + // TODO 自动生成的方法存根 + figure=0; + } + + } + } \ No newline at end of file -- Gitee