From c3fea70173d4bc2bfe2d641bd3c5acd415b197c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E7=A1=95?= Date: Wed, 9 Jun 2021 22:39:54 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E7=AC=AC=E4=B8=80=E6=AC=A1=E6=8F=90?= =?UTF-8?q?=E4=BA=A4=EF=BC=8C=E5=9F=BA=E6=9C=AC=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2020spring/Calculator.java | 58 +++++ src/java2020spring/CalculatorMainClass.java | 7 + src/java2020spring/KeXueCalculator.java | 271 ++++++++++++++++++++ src/java2020spring/WindowCalculator.java | 203 +++++++++++++++ 4 files changed, 539 insertions(+) create mode 100644 src/java2020spring/Calculator.java create mode 100644 src/java2020spring/CalculatorMainClass.java create mode 100644 src/java2020spring/KeXueCalculator.java create mode 100644 src/java2020spring/WindowCalculator.java diff --git a/src/java2020spring/Calculator.java b/src/java2020spring/Calculator.java new file mode 100644 index 0000000..ce869ed --- /dev/null +++ b/src/java2020spring/Calculator.java @@ -0,0 +1,58 @@ +package java2020spring; +import java.awt.*; +import javax.swing.*; +import javax.swing.event.ChangeEvent; +import javax.swing.event.ChangeListener; + +public class Calculator extends JFrame{ //创建一个窗口 + WindowCalculator biaoZhun; + KeXueCalculator keXue; + JTabbedPane p; + Calculator(){ + biaoZhun=new WindowCalculator(); //创建biaoZhun这个面板对象 + keXue=new KeXueCalculator(); //创建keXue这个面板对象 + p=new JTabbedPane(); //创建一个选项卡容器 + p.add("标准计算器",biaoZhun); //将biaoZhun这个面板放在容器中 + p.add("科学计算器",keXue); //将keXue这个面板放在容器中 + p.addChangeListener(new ChangeListener() { //创建改变面板监视器 + + @Override + public void stateChanged(ChangeEvent e) { + String name =String.valueOf(p.getSelectedComponent()); + String []item1= {"2nd","sin","cos","tan","hyp","sec","csc","cot"}; + String []item2= {"|x|","┕x┘","┍x┐","rand","→dms","→deg"}; + JMenuItem []item3=new JMenuItem[8]; + JMenuItem []item4=new JMenuItem[6]; + if(name.equals("java2020spring.KeXueCalculator[,2,27,527x573,invalid,layout=java.awt.BorderLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=9," + + "maximumSize=,minimumSize=,preferredSize=]")) { //如果是科学计算器面板,就加上有“三角学”、“函数”的菜单条 + JMenuBar menuBar=new JMenuBar(); + JMenu menu1=new JMenu("三角学"); + JMenu menu2=new JMenu("函数"); + for(int i=0;i Date: Thu, 10 Jun 2021 09:56:08 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86=E4=B8=80?= =?UTF-8?q?=E4=BA=9B=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2020spring/KeXueCalculator.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/java2020spring/KeXueCalculator.java b/src/java2020spring/KeXueCalculator.java index ca5fdf8..f848e1b 100644 --- a/src/java2020spring/KeXueCalculator.java +++ b/src/java2020spring/KeXueCalculator.java @@ -157,7 +157,7 @@ public class KeXueCalculator extends JPanel implements ActionListener{ } if(e.getActionCommand().equals("log")) { double num1=Double.parseDouble(str2); - if(num1<0) { + if(num1<=0) { label1.setText("log("+num1+")"); label2.setText("鏃犳晥杈撳叆锛"); } @@ -171,8 +171,8 @@ public class KeXueCalculator extends JPanel implements ActionListener{ } if(e.getActionCommand().equals("ln")) { double num1=Double.parseDouble(str2); - if(num1<0) { - label1.setText("log("+num1+")"); + if(num1<=0) { + label1.setText("ln("+num1+")"); label2.setText("鏃犳晥杈撳叆锛"); } else { -- Gitee From 357b1d8fa0cadbee15f179cccfe35b253c63ad20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E7=A1=95?= Date: Thu, 10 Jun 2021 13:52:48 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86=E4=B8=80?= =?UTF-8?q?=E4=BA=9B=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2020spring/KeXueCalculator.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/java2020spring/KeXueCalculator.java b/src/java2020spring/KeXueCalculator.java index f848e1b..d52651c 100644 --- a/src/java2020spring/KeXueCalculator.java +++ b/src/java2020spring/KeXueCalculator.java @@ -176,7 +176,7 @@ public class KeXueCalculator extends JPanel implements ActionListener{ label2.setText("鏃犳晥杈撳叆锛"); } else { - str1="log("+num1+")"; + str1="ln("+num1+")"; label1.setText(str1); double num2=Math.log(num1); str2=String.valueOf(num2); -- Gitee From b7c204073f97d0b90f392c96176db24f5847a8c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E7=A1=95?= Date: Thu, 10 Jun 2021 18:01:11 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BA=86=E4=B8=80?= =?UTF-8?q?=E4=BA=9B=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2020spring/KeXueCalculator.java | 10 +++++----- src/java2020spring/WindowCalculator.java | 8 ++++---- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/java2020spring/KeXueCalculator.java b/src/java2020spring/KeXueCalculator.java index d52651c..eefd3ba 100644 --- a/src/java2020spring/KeXueCalculator.java +++ b/src/java2020spring/KeXueCalculator.java @@ -204,23 +204,23 @@ public class KeXueCalculator extends JPanel implements ActionListener{ }catch(Exception exp) {} } public double Calculate(String str) { - try{int index = str.indexOf("锛"); + try{int index = str.lastIndexOf("锛"); if(index!=-1) { return Calculate(str.substring(0, index))+Calculate(str.substring(index + 1)); } - index=str.indexOf("锛"); + index=str.lastIndexOf("锛"); if(index!=-1) { return Calculate(str.substring(0, index))-Calculate(str.substring(index + 1)); } - index=str.indexOf("脳"); + index=str.lastIndexOf("脳"); if(index!=-1) { return Calculate(str.substring(0, index))*Calculate(str.substring(index + 1)); } - index=str.indexOf("梅"); + index=str.lastIndexOf("梅"); if(index!=-1) { return Calculate(str.substring(0, index))/Calculate(str.substring(index + 1)); } - index=str.indexOf("^"); + index=str.lastIndexOf("^"); if(index!=-1) { return Exponential(Double.valueOf(str.substring(0,index)),Double.valueOf(str.substring(index + 1))); //璋冪敤Exponential杩欎釜鏂规硶锛屽皢x^y鐨剎鍜寉浼犵粰璇ユ柟娉曚腑鐩稿簲鐨勫弬鏁 } diff --git a/src/java2020spring/WindowCalculator.java b/src/java2020spring/WindowCalculator.java index 034ab8c..651448e 100644 --- a/src/java2020spring/WindowCalculator.java +++ b/src/java2020spring/WindowCalculator.java @@ -161,19 +161,19 @@ public class WindowCalculator extends JPanel implements ActionListener{ } //瀹炵幇杩愮畻鎸夐挳 public double Calculate(String str) { - try{int index = str.indexOf("锛"); + try{int index = str.lastIndexOf("锛"); if(index!=-1) { return Calculate(str.substring(0, index))+Calculate(str.substring(index + 1)); } - index=str.indexOf("锛"); + index=str.lastIndexOf("锛"); if(index!=-1) { return Calculate(str.substring(0, index))-Calculate(str.substring(index + 1)); } - index=str.indexOf("脳"); + index=str.lastIndexOf("脳"); if(index!=-1) { return Calculate(str.substring(0, index))*Calculate(str.substring(index + 1)); } - index=str.indexOf("梅"); + index=str.lastIndexOf("梅"); if(index!=-1) { return Calculate(str.substring(0, index))/Calculate(str.substring(index + 1)); } -- Gitee