From 70684f7473087540f58c2a7f02e7770e8bcfb0ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=9C=E9=85=B1?= <果酱@LAPTOP-4H3BJEVK> Date: Tue, 1 Jun 2021 17:51:38 +0800 Subject: [PATCH 01/18] =?UTF-8?q?=E5=88=9B=E5=BB=BA=E4=BA=86=E4=B8=80?= =?UTF-8?q?=E4=B8=AA=E7=AA=97=E5=8F=A3=EF=BC=8C=E6=B7=BB=E5=8A=A0=E6=A0=87?= =?UTF-8?q?=E9=A2=98=E2=80=9C=E8=AE=A1=E7=AE=97=E5=99=A8=E2=80=9D=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 并将窗口的布局设为BorderLayout,总体布局的north放置了一个文本框用以显示计算的过程和结果;总体布局center 上new了一个面板,面板上是网格布置,放置计算用的24个按钮。 还有一个cardLayout布局,放在“菜单”里,用来切换“科学型”和“标准型” 最后为所有的按钮添加监听器 --- src/java2020spring/Calculate.java | 5 ++ src/java2020spring/Calculator.java | 15 ++++ src/java2020spring/CalculatorFrame.java | 96 +++++++++++++++++++++++++ src/java2020spring/Test.java | 10 --- 4 files changed, 116 insertions(+), 10 deletions(-) create mode 100644 src/java2020spring/Calculate.java create mode 100644 src/java2020spring/Calculator.java create mode 100644 src/java2020spring/CalculatorFrame.java delete mode 100644 src/java2020spring/Test.java diff --git a/src/java2020spring/Calculate.java b/src/java2020spring/Calculate.java new file mode 100644 index 0000000..d6ac3a8 --- /dev/null +++ b/src/java2020spring/Calculate.java @@ -0,0 +1,5 @@ +package java2020spring; + +public class Calculate { + +} diff --git a/src/java2020spring/Calculator.java b/src/java2020spring/Calculator.java new file mode 100644 index 0000000..da4de1e --- /dev/null +++ b/src/java2020spring/Calculator.java @@ -0,0 +1,15 @@ +package java2020spring; + +import javax.swing.JFrame; + +public class Calculator { + + public static void main(String[] args) { + CalculatorFrame frame=new CalculatorFrame(); + frame.setSize(500,700); + frame.setTitle(""); + frame.setVisible(true); + + } + +} diff --git a/src/java2020spring/CalculatorFrame.java b/src/java2020spring/CalculatorFrame.java new file mode 100644 index 0000000..89bb0be --- /dev/null +++ b/src/java2020spring/CalculatorFrame.java @@ -0,0 +1,96 @@ +package java2020spring; +import java.util.*; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +import javax.swing.*; + + +public class CalculatorFrame extends JFrame{ + + public CalculatorFrame() { + this.init(); + + + } + + public void init() { + setLayout(new BorderLayout()); + JPanel panelC=new JPanel(); + CardLayout cardLayout=new CardLayout(); + panelC.setLayout(cardLayout); + + JMenuBar menubar; + JMenu choice; + JMenuItem standard,science; + + menubar=new JMenuBar(); + choice=new JMenu("˵"); + standard=new JMenuItem("׼"); + science=new JMenuItem("ѧ"); + + standard.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + cardLayout.first(panelC); + } + }); + + science.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + cardLayout.last(panelC); + } + }); + + choice.add(standard); + choice.add(science); + menubar.add(choice); + setJMenuBar(menubar); + + JTextArea textArea=new JTextArea(8,6); + add(textArea,BorderLayout.NORTH);//ıӵ + + + JPanel panelW=new JPanel(); + panelW.setLayout(new GridLayout(6,4)); + JButton standardButton[]=new JButton[24]; + String str[]= { + "%","","x2","1/x", + "CE","C","del","", + "7","8","9","", + "4","5","6","-", + "1","2","3","+", + "","0",".","=" + }; + for(int i=0;i Date: Tue, 1 Jun 2021 18:17:09 +0800 Subject: [PATCH 02/18] =?UTF-8?q?=E5=88=9B=E5=BB=BA=E4=BA=86=E4=B8=80?= =?UTF-8?q?=E4=B8=AA=E7=AA=97=E5=8F=A3=EF=BC=8C=E6=B7=BB=E5=8A=A0=E6=A0=87?= =?UTF-8?q?=E9=A2=98=E2=80=9C=E8=AE=A1=E7=AE=97=E5=99=A8=E2=80=9D=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 并将窗口的布局设为BorderLayout,总体布局的north放置了一个文本框用以显示计算的过程和结果;总体布局center 上new了一个面板,面板上是网格布置,放置计算用的24个按钮。 还有一个cardLayout布局,放在“菜单”里,用来切换“科学型”和“标准型” 最后为所有的按钮添加监听器 --- src/java2020spring/CalculatorFrame.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/java2020spring/CalculatorFrame.java b/src/java2020spring/CalculatorFrame.java index 89bb0be..31c7477 100644 --- a/src/java2020spring/CalculatorFrame.java +++ b/src/java2020spring/CalculatorFrame.java @@ -70,7 +70,9 @@ public class CalculatorFrame extends JFrame{ @Override public void actionPerformed(ActionEvent e) { - + if(text.equals("CE")||text.equals("C")) { + textArea.setText(""); + } } -- Gitee From 08d01e480178bc12fd07b6158405ec7245b3864c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=9C=E9=85=B1?= <果酱@LAPTOP-4H3BJEVK> Date: Tue, 1 Jun 2021 18:39:52 +0800 Subject: [PATCH 03/18] =?UTF-8?q?=E5=88=9B=E5=BB=BA=E4=BA=86=E4=B8=80?= =?UTF-8?q?=E4=B8=AA=E7=AA=97=E5=8F=A3=EF=BC=8C=E6=B7=BB=E5=8A=A0=E6=A0=87?= =?UTF-8?q?=E9=A2=98=E2=80=9C=E8=AE=A1=E7=AE=97=E5=99=A8=E2=80=9D=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 并将窗口的布局设为BorderLayout,总体布局的north放置了一个文本框用以显示计算的过程和结果;总体布局center 上new了一个面板,面板上是网格布置,放置计算用的24个按钮。 还有一个cardLayout布局,放在“菜单”里,用来切换“科学型”和“标准型” 最后为所有的按钮添加监听器 --- src/java2020spring/CalculatorFrame.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/java2020spring/CalculatorFrame.java b/src/java2020spring/CalculatorFrame.java index 31c7477..5eef4d6 100644 --- a/src/java2020spring/CalculatorFrame.java +++ b/src/java2020spring/CalculatorFrame.java @@ -70,10 +70,7 @@ public class CalculatorFrame extends JFrame{ @Override public void actionPerformed(ActionEvent e) { - if(text.equals("CE")||text.equals("C")) { - textArea.setText(""); - } - + } -- Gitee From 7c5cf98df1900f29e818765eb2c9c6e4f87fa7ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=9C=E9=85=B1?= <果酱@LAPTOP-4H3BJEVK> Date: Tue, 1 Jun 2021 18:39:52 +0800 Subject: [PATCH 04/18] =?UTF-8?q?=E5=88=9B=E5=BB=BA=E4=BA=86=E4=B8=80?= =?UTF-8?q?=E4=B8=AA=E7=AA=97=E5=8F=A3=EF=BC=8C=E6=B7=BB=E5=8A=A0=E6=A0=87?= =?UTF-8?q?=E9=A2=98=E2=80=9C=E8=AE=A1=E7=AE=97=E5=99=A8=E2=80=9D=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 并将窗口的布局设为BorderLayout,总体布局的north放置了一个文本框用以显示计算的过程和结果;总体布局center 上new了一个面板,面板上是网格布置,放置计算用的24个按钮。 还有一个cardLayout布局,放在“菜单”里,用来切换“科学型”和“标准型” 最后为所有的按钮添加监听器 --- src/java2020spring/CalculatorFrame.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/java2020spring/CalculatorFrame.java b/src/java2020spring/CalculatorFrame.java index 31c7477..5eef4d6 100644 --- a/src/java2020spring/CalculatorFrame.java +++ b/src/java2020spring/CalculatorFrame.java @@ -70,10 +70,7 @@ public class CalculatorFrame extends JFrame{ @Override public void actionPerformed(ActionEvent e) { - if(text.equals("CE")||text.equals("C")) { - textArea.setText(""); - } - + } -- Gitee From d189763145af8173100cd4e964b51bbc526246f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=9C=E9=85=B1?= <果酱@LAPTOP-4H3BJEVK> Date: Wed, 2 Jun 2021 19:53:39 +0800 Subject: [PATCH 05/18] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BA=86x^2=EF=BC=8C1/?= =?UTF-8?q?x,+-,=E5=BC=80=E6=A0=B9=E5=8F=B7=EF=BC=8Cdel=E7=AD=89=E7=9A=84?= =?UTF-8?q?=E8=AE=A1=E7=AE=97=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2020spring/CalculatorFrame.java | 41 +++++++++++++++++++++---- 1 file changed, 35 insertions(+), 6 deletions(-) diff --git a/src/java2020spring/CalculatorFrame.java b/src/java2020spring/CalculatorFrame.java index 5eef4d6..339c978 100644 --- a/src/java2020spring/CalculatorFrame.java +++ b/src/java2020spring/CalculatorFrame.java @@ -11,11 +11,13 @@ public class CalculatorFrame extends JFrame{ public CalculatorFrame() { this.init(); - + } public void init() { + + setLayout(new BorderLayout()); JPanel panelC=new JPanel(); CardLayout cardLayout=new CardLayout(); @@ -53,9 +55,9 @@ public class CalculatorFrame extends JFrame{ JPanel panelW=new JPanel(); panelW.setLayout(new GridLayout(6,4)); - JButton standardButton[]=new JButton[24]; + JButton []standardButton=new JButton[24]; String str[]= { - "%","","x2","1/x", + "%","","x^2","1/x", "CE","C","del","", "7","8","9","", "4","5","6","-", @@ -64,13 +66,40 @@ public class CalculatorFrame extends JFrame{ }; for(int i=0;i Date: Thu, 3 Jun 2021 21:14:20 +0800 Subject: [PATCH 06/18] =?UTF-8?q?=E8=BF=90=E7=AE=97=E7=AC=A6=E5=8F=B7?= =?UTF-8?q?=E7=9A=84=E5=A4=84=E7=90=86+-=E2=9C=96=E2=9E=97%=E7=9A=84?= =?UTF-8?q?=E5=A4=84=E7=90=86=EF=BC=8C=E9=80=9A=E8=BF=87switch=EF=BC=9B?= =?UTF-8?q?=E7=AD=89=E5=8F=B7=E7=9A=84=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 处理过程:当输入一个数字之后,若按运算符号+-✖➗%中的一种,则原本的数字被记录下来并清空,继而输入第二个数字,按下等号,计算器进行运算 --- src/java2020spring/Calculate.java | 5 -- src/java2020spring/CalculatorFrame.java | 87 +++++++++++++++++-------- 2 files changed, 61 insertions(+), 31 deletions(-) delete mode 100644 src/java2020spring/Calculate.java diff --git a/src/java2020spring/Calculate.java b/src/java2020spring/Calculate.java deleted file mode 100644 index d6ac3a8..0000000 --- a/src/java2020spring/Calculate.java +++ /dev/null @@ -1,5 +0,0 @@ -package java2020spring; - -public class Calculate { - -} diff --git a/src/java2020spring/CalculatorFrame.java b/src/java2020spring/CalculatorFrame.java index 339c978..ada1620 100644 --- a/src/java2020spring/CalculatorFrame.java +++ b/src/java2020spring/CalculatorFrame.java @@ -10,15 +10,18 @@ import javax.swing.*; public class CalculatorFrame extends JFrame{ public CalculatorFrame() { - this.init(); + this.initStandard(); + } - public void init() { + + public void initStandard() { setLayout(new BorderLayout()); + JPanel panelC=new JPanel(); CardLayout cardLayout=new CardLayout(); panelC.setLayout(cardLayout); @@ -32,6 +35,8 @@ public class CalculatorFrame extends JFrame{ standard=new JMenuItem("׼"); science=new JMenuItem("ѧ"); + + standard.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { cardLayout.first(panelC); @@ -66,59 +71,89 @@ public class CalculatorFrame extends JFrame{ }; for(int i=0;i Date: Fri, 4 Jun 2021 20:54:44 +0800 Subject: [PATCH 07/18] =?UTF-8?q?=E5=B0=86=E7=AA=97=E5=8F=A3=E5=B1=85?= =?UTF-8?q?=E4=B8=AD=EF=BC=8C=E4=B8=BA=E6=8C=89=E9=92=AE=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E5=AD=97=E4=BD=93=E5=92=8C=E9=A2=9C=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2020spring/Calculator.java | 17 +++- src/java2020spring/CalculatorFrame.java | 116 ++++++++++++------------ 2 files changed, 74 insertions(+), 59 deletions(-) diff --git a/src/java2020spring/Calculator.java b/src/java2020spring/Calculator.java index da4de1e..19f233d 100644 --- a/src/java2020spring/Calculator.java +++ b/src/java2020spring/Calculator.java @@ -1,15 +1,28 @@ package java2020spring; +import java.awt.Dimension; +import java.awt.Toolkit; + import javax.swing.JFrame; public class Calculator { public static void main(String[] args) { CalculatorFrame frame=new CalculatorFrame(); - frame.setSize(500,700); + + //ھ + int FRAME_Width=500; + int FRAME_Height=700; + int SCREEN_Width=Toolkit.getDefaultToolkit().getScreenSize().width;//õĻĿ + int SCREEN_Height=Toolkit.getDefaultToolkit().getScreenSize().height;//õĻĸ + int frame_x=(SCREEN_Width-FRAME_Width)/2;//ں + int frame_y=(SCREEN_Height-FRAME_Height)/2; // + frame.setSize(FRAME_Width,FRAME_Height); + frame.setLocation(frame_x, frame_y); + //ھ + frame.setTitle(""); frame.setVisible(true); - } } diff --git a/src/java2020spring/CalculatorFrame.java b/src/java2020spring/CalculatorFrame.java index ada1620..fe11655 100644 --- a/src/java2020spring/CalculatorFrame.java +++ b/src/java2020spring/CalculatorFrame.java @@ -7,59 +7,63 @@ import java.awt.event.ActionListener; import javax.swing.*; -public class CalculatorFrame extends JFrame{ +public class CalculatorFrame extends JFrame { public CalculatorFrame() { this.initStandard(); + - - } + + public void initStandard() { + //£ñIJ˵л׼͡͡ѧ͡ļ + JPanel panelC=new JPanel(); + CardLayout cardLayout=new CardLayout(); + panelC.setLayout(cardLayout); + + JMenuBar menubar; + JMenu choice; + JMenuItem standard,science; + + menubar=new JMenuBar(); + choice=new JMenu("˵"); + standard=new JMenuItem("׼"); + science=new JMenuItem("ѧ"); + + standard.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + cardLayout.first(panelC); + } + }); + + science.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + cardLayout.last(panelC); + } + }); + + choice.add(standard); + choice.add(science); + menubar.add(choice); + setJMenuBar(menubar); + + //£׼ͼ + /*ڱı + * м壬岼ΪGridLayout ʽΪ64У24õİť + * ΪťƼ + * ֲŵ*/ setLayout(new BorderLayout()); - JPanel panelC=new JPanel(); - CardLayout cardLayout=new CardLayout(); - panelC.setLayout(cardLayout); - - JMenuBar menubar; - JMenu choice; - JMenuItem standard,science; - - menubar=new JMenuBar(); - choice=new JMenu("˵"); - standard=new JMenuItem("׼"); - science=new JMenuItem("ѧ"); - - - - standard.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - cardLayout.first(panelC); - } - }); - - science.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - cardLayout.last(panelC); - } - }); - - choice.add(standard); - choice.add(science); - menubar.add(choice); - setJMenuBar(menubar); - JTextArea textArea=new JTextArea(8,6); add(textArea,BorderLayout.NORTH);//ıӵ - - - JPanel panelW=new JPanel(); - panelW.setLayout(new GridLayout(6,4)); + + JPanel panelWangge=new JPanel(); + panelWangge.setLayout(new GridLayout(6,4)); JButton []standardButton=new JButton[24]; String str[]= { "%","","x^2","1/x", @@ -69,30 +73,29 @@ public class CalculatorFrame extends JFrame{ "1","2","3","+", "","0",".","=" }; + for(int i=0;i Date: Sat, 5 Jun 2021 23:53:23 +0800 Subject: [PATCH 08/18] =?UTF-8?q?=E6=8D=A2=E4=BA=86=E4=B8=80=E7=A7=8D?= =?UTF-8?q?=E8=AE=A1=E7=AE=97+-*%=C3=B7=E7=9A=84=E6=96=B9=E6=B3=95?= =?UTF-8?q?=EF=BC=8C=E8=A7=A3=E5=86=B3=E4=BA=86=E4=B9=8B=E5=89=8D=E6=96=B9?= =?UTF-8?q?=E6=B3=95=E4=B8=8D=E8=83=BD=E8=AE=A1=E7=AE=97=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98=EF=BC=8C=E4=BD=86=E6=98=AF=E8=AF=A5=E6=96=B9=E6=B3=95?= =?UTF-8?q?=E4=B8=8D=E8=83=BD=E5=81=9A=E5=88=B0=E8=BF=9E=E7=BB=AD=E5=8A=A0?= =?UTF-8?q?=E5=87=8F=E7=AD=89=E6=93=8D=E4=BD=9C=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 将之前的菜单删除(只设计标准型计算器) 添加了一些注释 --- src/java2020spring/Calculator.java | 2 +- src/java2020spring/CalculatorFrame.java | 152 ++++++++++++------------ 2 files changed, 77 insertions(+), 77 deletions(-) diff --git a/src/java2020spring/Calculator.java b/src/java2020spring/Calculator.java index 19f233d..78514b6 100644 --- a/src/java2020spring/Calculator.java +++ b/src/java2020spring/Calculator.java @@ -12,7 +12,7 @@ public class Calculator { //ھ int FRAME_Width=500; - int FRAME_Height=700; + int FRAME_Height=500; int SCREEN_Width=Toolkit.getDefaultToolkit().getScreenSize().width;//õĻĿ int SCREEN_Height=Toolkit.getDefaultToolkit().getScreenSize().height;//õĻĸ int frame_x=(SCREEN_Width-FRAME_Width)/2;//ں diff --git a/src/java2020spring/CalculatorFrame.java b/src/java2020spring/CalculatorFrame.java index fe11655..db738de 100644 --- a/src/java2020spring/CalculatorFrame.java +++ b/src/java2020spring/CalculatorFrame.java @@ -19,51 +19,26 @@ public class CalculatorFrame extends JFrame { public void initStandard() { - - //£ñIJ˵л׼͡͡ѧ͡ļ - JPanel panelC=new JPanel(); - CardLayout cardLayout=new CardLayout(); - panelC.setLayout(cardLayout); - - JMenuBar menubar; - JMenu choice; - JMenuItem standard,science; - - menubar=new JMenuBar(); - choice=new JMenu("˵"); - standard=new JMenuItem("׼"); - science=new JMenuItem("ѧ"); - - standard.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - cardLayout.first(panelC); - } - }); - - science.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - cardLayout.last(panelC); - } - }); - - choice.add(standard); - choice.add(science); - menubar.add(choice); - setJMenuBar(menubar); + - //£׼ͼ - /*ڱı + /* + * £׼ͼ + * ڱı * м壬岼ΪGridLayout ʽΪ64У24õİť * ΪťƼ - * ֲŵ*/ - - setLayout(new BorderLayout()); + * ֲŵ + * + * */ JTextArea textArea=new JTextArea(8,6); - add(textArea,BorderLayout.NORTH);//ıӵ + textArea.setText("\n\n\n\n\n\n\nֻܼλޣһ͵~"); + + + add(textArea,BorderLayout.NORTH);//ıӵ JPanel panelWangge=new JPanel(); panelWangge.setLayout(new GridLayout(6,4)); + JButton []standardButton=new JButton[24]; String str[]= { "%","","x^2","1/x", @@ -76,86 +51,111 @@ public class CalculatorFrame extends JFrame { for(int i=0;i Date: Sun, 6 Jun 2021 14:13:30 +0800 Subject: [PATCH 09/18] =?UTF-8?q?=E5=AE=8C=E5=96=84=E4=BA=86=E7=95=8C?= =?UTF-8?q?=E9=9D=A2=EF=BC=8C=E4=B8=BA=E6=8C=89=E9=92=AE=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E4=BA=86=E9=A2=9C=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2020spring/Calculator.java | 6 +- src/java2020spring/CalculatorFrame.java | 102 +++++++++++++++--------- 2 files changed, 68 insertions(+), 40 deletions(-) diff --git a/src/java2020spring/Calculator.java b/src/java2020spring/Calculator.java index 78514b6..91541a5 100644 --- a/src/java2020spring/Calculator.java +++ b/src/java2020spring/Calculator.java @@ -12,7 +12,7 @@ public class Calculator { //ھ int FRAME_Width=500; - int FRAME_Height=500; + int FRAME_Height=700; int SCREEN_Width=Toolkit.getDefaultToolkit().getScreenSize().width;//õĻĿ int SCREEN_Height=Toolkit.getDefaultToolkit().getScreenSize().height;//õĻĸ int frame_x=(SCREEN_Width-FRAME_Width)/2;//ں @@ -21,8 +21,10 @@ public class Calculator { frame.setLocation(frame_x, frame_y); //ھ - frame.setTitle(""); + frame.setTitle(" : ڻֻܼ~"); frame.setVisible(true); + frame.setResizable(true);//޸ĴڴС + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } diff --git a/src/java2020spring/CalculatorFrame.java b/src/java2020spring/CalculatorFrame.java index db738de..7ff8ca3 100644 --- a/src/java2020spring/CalculatorFrame.java +++ b/src/java2020spring/CalculatorFrame.java @@ -17,26 +17,35 @@ public class CalculatorFrame extends JFrame { - - public void initStandard() { - - - /* - * £׼ͼ - * ڱı - * м壬岼ΪGridLayout ʽΪ64У24õİť - * ΪťƼ - * ֲŵ - * - * */ + /* + * £׼ͼ + * ڱı + * м壬岼ΪGridLayout ʽΪ64У24õİť + * ΪťƼ + * ֲŵ + * ⻹ɫӵϸ + * */ + public void initStandard() { + + JTextArea textArea; + JPanel panelWangge; + JMenu leixing; + JMenuBar menubar; + Font f; + - JTextArea textArea=new JTextArea(8,6); - textArea.setText("\n\n\n\n\n\n\nֻܼλޣһ͵~"); - + leixing=new JMenu("׼"); + menubar=new JMenuBar(); + menubar.add(leixing); + setJMenuBar(menubar); + + textArea=new JTextArea(8,6); add(textArea,BorderLayout.NORTH);//ıӵ - - JPanel panelWangge=new JPanel(); + f=new Font("Բ",Font.BOLD,20);//ıֺ + textArea.setFont(f); + + panelWangge=new JPanel();//壬Űť panelWangge.setLayout(new GridLayout(6,4)); JButton []standardButton=new JButton[24]; @@ -51,34 +60,55 @@ public class CalculatorFrame extends JFrame { for(int i=0;i=8&&i Date: Sun, 6 Jun 2021 21:16:56 +0800 Subject: [PATCH 10/18] =?UTF-8?q?=E4=B8=BA=E8=BF=90=E7=AE=97=E6=97=B6?= =?UTF-8?q?=E7=9A=84=E4=B8=80=E4=BA=9B=E7=89=B9=E6=AE=8A=E6=83=85=E5=86=B5?= =?UTF-8?q?=E5=BC=B9=E5=87=BA=E2=80=9C=E8=AD=A6=E5=91=8A=E2=80=9D=E6=88=96?= =?UTF-8?q?=E8=80=85=E6=96=87=E6=9C=AC=E6=A1=86=E7=9A=84=E6=8F=90=E7=A4=BA?= =?UTF-8?q?=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 如:计算除法时分母为0;计算0的倒数;计算负数的开方;用户想连续运算时都会弹出对话框,给出警告。当文本框内没有内容但用户仍进行删除时,文本框显示文字提醒用户等 --- src/java2020spring/CalculatorFrame.java | 116 ++++++++++++++++-------- 1 file changed, 78 insertions(+), 38 deletions(-) diff --git a/src/java2020spring/CalculatorFrame.java b/src/java2020spring/CalculatorFrame.java index 7ff8ca3..b5fc351 100644 --- a/src/java2020spring/CalculatorFrame.java +++ b/src/java2020spring/CalculatorFrame.java @@ -69,12 +69,12 @@ public class CalculatorFrame extends JFrame { standardButton[i].setFont(new Font("",Font.PLAIN,18)); standardButton[i].setForeground(Color.darkGray ); - //Ϊɫ + //Ϊŵİťɫ if(i<8) { standardButton[i].setBackground(color3); - standardButton[i].setBorderPainted(false); + //standardButton[i].setBorderPainted(false); } - if(i>=8&&i=8&&i<23) { if((i+1)%4==0) { standardButton[i].setBackground(color3); } @@ -83,7 +83,7 @@ public class CalculatorFrame extends JFrame { } } - if(i==standardButton.length-1) { + if(i==23) { standardButton[i].setBackground(color2); } @@ -102,41 +102,55 @@ public class CalculatorFrame extends JFrame { double result=0; String []text1; - String textWenben=textArea.getText(); + String textWenben=textArea.getText(); + StringTokenizer fenxi=new StringTokenizer(textWenben,"0.123456789"); if(text.equals("=")) { - //String regex="[\\s\\d\\p{Punct}]+"; - - if((text1=textWenben.split("\\+")).length==2) { - result=Double.parseDouble(text1[0])+Double.parseDouble(text1[1]); - } - else if((text1=textWenben.split("\\-")).length==2) { - result=Double.parseDouble(text1[0])-Double.parseDouble(text1[1]); - textArea.setText(result+" "); + + //ļӼ˳ȵ㣬ΪָʱĿΪ1ִ² + if(fenxi.countTokens()==1) { - } - else if((text1=textWenben.split("\\")).length==2) { - result=Double.parseDouble(text1[0])*Double.parseDouble(text1[1]); - textArea.setText(String.valueOf(result)); + if((text1=textWenben.split("\\+")).length==2) { + result=Double.parseDouble(text1[0])+Double.parseDouble(text1[1]); + textArea.setText(result+"\n\n\n\n\n\n\n= _ "); + } + else if((text1=textWenben.split("\\-")).length==2) { + result=Double.parseDouble(text1[0])-Double.parseDouble(text1[1]); + textArea.setText(result+"\n\n\n\n\n\n\n= _ "); + + } + else if((text1=textWenben.split("\\")).length==2) { + result=Double.parseDouble(text1[0])*Double.parseDouble(text1[1]); + textArea.setText(result+"\n\n\n\n\n\n\n= _ "); } - else if((text1=textWenben.split("\\")).length==2) { - if(Double.parseDouble(text1[1])!=0) { - result=Double.parseDouble(text1[0])/Double.parseDouble(text1[1]); - textArea.setText(String.valueOf(result)); + else if((text1=textWenben.split("\\")).length==2) { + if(Double.parseDouble(text1[1])!=0) { + result=Double.parseDouble(text1[0])/Double.parseDouble(text1[1]); + textArea.setText(result+"\n\n\n\n\n\n\n= _ "); } - - //һԻԷĸΪо - else { - JOptionPane.showMessageDialog( textArea, "ĸΪ0ܼ~","", - JOptionPane.WARNING_MESSAGE, null); + + //һԻԷĸΪо + else { + JOptionPane.showMessageDialog( textArea, "ĸΪ0ܼ~","", + JOptionPane.WARNING_MESSAGE, null); + } } - } - else if((text1=textWenben.split("\\%")).length==2) { - result=Double.parseDouble(text1[0])%Double.parseDouble(text1[1]); - textArea.setText(String.valueOf(result)); - } + else if((text1=textWenben.split("\\%")).length==2) { + result=Double.parseDouble(text1[0])%Double.parseDouble(text1[1]); + textArea.setText(String.valueOf(result)); + } + } + + //Ŀһ + else { + JOptionPane.showMessageDialog( textArea, "ˮƽڻܽļӼ˳~","", + JOptionPane.WARNING_MESSAGE, null); + textArea.setText(""); + } + + } //***************+,-,£%ļ㵽˽********************* @@ -145,13 +159,20 @@ public class CalculatorFrame extends JFrame { * ȵķ */ if(text.equals("C")||text.equals("CE")) { - textArea.setText("0"); + textArea.setText(""); } else if(text.equals("")){ result=Double.parseDouble(textArea.getText()); - result=Math.sqrt(result); - textArea.setText(result+" "); + if(result>=0) { + result=Math.sqrt(result); + textArea.setText(result+" "); + } + //Ϊ0 + else { + JOptionPane.showMessageDialog( textArea, "Ϊ~","", + JOptionPane.WARNING_MESSAGE, null); + } } else if(text.equals("x^2")){ result=Double.parseDouble(textArea.getText()); @@ -160,18 +181,37 @@ public class CalculatorFrame extends JFrame { } else if(text.equals("1/x")){ result=Double.parseDouble(textArea.getText()); - result=1/result; + if(result!=0){ + result=1/result; + textArea.setText(result+" "); + } + //ĸΪ0 + else { + JOptionPane.showMessageDialog( null, "0ûе~","", + JOptionPane.WARNING_MESSAGE, null); + } + } + else if(text.equals("")){ + result=Double.parseDouble(textArea.getText()); + result=-result; textArea.setText(result+" "); } else if(text.equals("del")){ - //result=Double.parseDouble(textArea.getText()); - textArea.setText(textArea.getText().substring(0,textArea.getText().length()-1)); + if(textArea.getText().length()!=0) { + textArea.setText(textArea.getText().substring(0,textArea.getText().length()-1)); + } + else { + textArea.setText("Ѿûпɾֻม\n\n"+"Ҫ밴¡CEߡCվ\n\n"+"Ȼᷢ~"); + } + } else { textArea.setText(textArea.getText()+text); } - } + } + + //*******"","x^2","1/x""CE","C","del",""ȵķŵ˽************** -- Gitee From 526c6bb7aa922ab467f7b65fc69dbf2c45522381 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=9C=E9=85=B1?= <果酱@LAPTOP-4H3BJEVK> Date: Mon, 7 Jun 2021 23:56:57 +0800 Subject: [PATCH 11/18] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BA=86=E4=B8=80?= =?UTF-8?q?=E4=BA=9B=E5=A4=87=E6=B3=A8=EF=BC=8C=E4=BF=AE=E6=94=B9=E4=BA=86?= =?UTF-8?q?=E4=B8=80=E4=BA=9B=E5=AE=9E=E4=BE=8B=E7=9A=84=E5=90=8D=E7=A7=B0?= =?UTF-8?q?=EF=BC=8C=E5=A2=9E=E5=8A=A0=E4=BA=86=E5=8F=AF=E8=AF=BB=E6=80=A7?= =?UTF-8?q?=EF=BC=8C=E7=AA=97=E5=8F=A3=E5=B1=85=E4=B8=AD=E7=9A=84=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E6=8D=A2=E4=BA=86=E4=B8=80=E7=A7=8D=E6=9B=B4=E7=AE=80?= =?UTF-8?q?=E6=B4=81=E6=96=B9=E4=BE=BF=E7=9A=84=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2020spring/Calculator.java | 28 +++-- src/java2020spring/CalculatorFrame.java | 132 ++++++++++++------------ 2 files changed, 83 insertions(+), 77 deletions(-) diff --git a/src/java2020spring/Calculator.java b/src/java2020spring/Calculator.java index 91541a5..1da2994 100644 --- a/src/java2020spring/Calculator.java +++ b/src/java2020spring/Calculator.java @@ -10,21 +10,27 @@ public class Calculator { public static void main(String[] args) { CalculatorFrame frame=new CalculatorFrame(); - //ھ - int FRAME_Width=500; - int FRAME_Height=700; - int SCREEN_Width=Toolkit.getDefaultToolkit().getScreenSize().width;//õĻĿ - int SCREEN_Height=Toolkit.getDefaultToolkit().getScreenSize().height;//õĻĸ - int frame_x=(SCREEN_Width-FRAME_Width)/2;//ں - int frame_y=(SCREEN_Height-FRAME_Height)/2; // - frame.setSize(FRAME_Width,FRAME_Height); - frame.setLocation(frame_x, frame_y); - //ھ - frame.setTitle(" : ڻֻܼ~"); + + frame.setSize(500,700); + frame.setLocationRelativeTo(null);//ھ + frame.setTitle(" : ڻ~"); frame.setVisible(true); frame.setResizable(true);//޸ĴڴС frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + + + //ھ +// int FRAME_Width=500; +// int FRAME_Height=700; +// int SCREEN_Width=Toolkit.getDefaultToolkit().getScreenSize().width;//õĻĿ +// int SCREEN_Height=Toolkit.getDefaultToolkit().getScreenSize().height;//õĻĸ +// int frame_x=(SCREEN_Width-FRAME_Width)/2;//ں +// int frame_y=(SCREEN_Height-FRAME_Height)/2; // +// frame.setSize(FRAME_Width,FRAME_Height); +// frame.setLocation(frame_x, frame_y); +// //ھ + } } diff --git a/src/java2020spring/CalculatorFrame.java b/src/java2020spring/CalculatorFrame.java index b5fc351..6e6d602 100644 --- a/src/java2020spring/CalculatorFrame.java +++ b/src/java2020spring/CalculatorFrame.java @@ -1,5 +1,7 @@ package java2020spring; import java.util.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; @@ -11,29 +13,24 @@ public class CalculatorFrame extends JFrame { public CalculatorFrame() { this.initStandard(); - - } - /* * £׼ͼ - * ڱı + * ڱı򣬼͡׼͡ * м壬岼ΪGridLayout ʽΪ64У24õİť * ΪťƼ - * ֲŵ + * ֲŵ㣬ʱԻĵ趨 * ⻹ɫӵϸ * */ public void initStandard() { JTextArea textArea; - JPanel panelWangge; - JMenu leixing; + JPanel panelWangge;//壬 + JMenu leixing; //˵ JMenuBar menubar; Font f; - - leixing=new JMenu("׼"); menubar=new JMenuBar(); @@ -41,14 +38,14 @@ public class CalculatorFrame extends JFrame { setJMenuBar(menubar); textArea=new JTextArea(8,6); - add(textArea,BorderLayout.NORTH);//ıӵ - f=new Font("Բ",Font.BOLD,20);//ıֺ + add(textArea,BorderLayout.NORTH);//ıӵ + f=new Font("Բ",Font.BOLD,20);//ıֺ textArea.setFont(f); panelWangge=new JPanel();//壬Űť panelWangge.setLayout(new GridLayout(6,4)); + JButton []standardButton=new JButton[24];//24 Ŧ - JButton []standardButton=new JButton[24]; String str[]= { "%","","x^2","1/x", "CE","C","del","", @@ -60,23 +57,22 @@ public class CalculatorFrame extends JFrame { for(int i=0;i=8&&i<23) { if((i+1)%4==0) { - standardButton[i].setBackground(color3); + standardButton[i].setBackground(color2); } else { standardButton[i].setBackground(Color.WHITE); @@ -84,16 +80,17 @@ public class CalculatorFrame extends JFrame { } } if(i==23) { - standardButton[i].setBackground(color2); + standardButton[i].setBackground(color1); } standardButton[i].addActionListener(new ActionListener() { + /* - * µȺ֮õıеһַ + * µȺ֮õıеһַ * Ϊ趨ֻܼλ֣+£%Ϊָţ - * еֻtext1[0]text1[1] + * еֻoperationalNumber[0]operationalNumber[1] * ٽString͵IJתDouble;ͿԽм * * */ @@ -101,33 +98,36 @@ public class CalculatorFrame extends JFrame { public void actionPerformed(ActionEvent e) { double result=0; - String []text1; - String textWenben=textArea.getText(); - StringTokenizer fenxi=new StringTokenizer(textWenben,"0.123456789"); + String regex="[.0123456789]+"; + // Pattern pattern=Pattern.compile(regex); + //Matcher matcher = pattern.matcher(clickString); + String []operationalNumber; + String textAreaContent=textArea.getText(); + StringTokenizer operationalSymbol=new StringTokenizer(textAreaContent,regex); - if(text.equals("=")) { - + if(clickString.equals("=")) { //ļӼ˳ȵ㣬ΪָʱĿΪ1ִ² - if(fenxi.countTokens()==1) { + if(operationalSymbol.countTokens()==1) { - if((text1=textWenben.split("\\+")).length==2) { - result=Double.parseDouble(text1[0])+Double.parseDouble(text1[1]); - textArea.setText(result+"\n\n\n\n\n\n\n= _ "); + if((operationalNumber=textAreaContent.split("\\+")).length==2) {//ҷָķǡ+ + result=Double.parseDouble(operationalNumber[0])+Double.parseDouble(operationalNumber[1]); + textArea.setText(result+""); } - else if((text1=textWenben.split("\\-")).length==2) { - result=Double.parseDouble(text1[0])-Double.parseDouble(text1[1]); - textArea.setText(result+"\n\n\n\n\n\n\n= _ "); + else if((operationalNumber=textAreaContent.split("\\-")).length==2) { + result=Double.parseDouble(operationalNumber[0])-Double.parseDouble(operationalNumber[1]); + textArea.setText(result+""); } - else if((text1=textWenben.split("\\")).length==2) { - result=Double.parseDouble(text1[0])*Double.parseDouble(text1[1]); - textArea.setText(result+"\n\n\n\n\n\n\n= _ "); + else if((operationalNumber=textAreaContent.split("\\")).length==2) { + result=Double.parseDouble(operationalNumber[0])*Double.parseDouble(operationalNumber[1]); + textArea.setText(result+""); } - else if((text1=textWenben.split("\\")).length==2) { - if(Double.parseDouble(text1[1])!=0) { - result=Double.parseDouble(text1[0])/Double.parseDouble(text1[1]); - textArea.setText(result+"\n\n\n\n\n\n\n= _ "); + else if((operationalNumber=textAreaContent.split("\\")).length==2) { + + if(Double.parseDouble(operationalNumber[1])!=0) { + result=Double.parseDouble(operationalNumber[0])/Double.parseDouble(operationalNumber[1]); + textArea.setText(result+""); } //һԻԷĸΪо @@ -136,18 +136,18 @@ public class CalculatorFrame extends JFrame { JOptionPane.WARNING_MESSAGE, null); } } - else if((text1=textWenben.split("\\%")).length==2) { - result=Double.parseDouble(text1[0])%Double.parseDouble(text1[1]); - textArea.setText(String.valueOf(result)); + else if((operationalNumber=textAreaContent.split("\\%")).length==2) { + result=Double.parseDouble(operationalNumber[0])%Double.parseDouble(operationalNumber[1]); + textArea.setText(result+""); } } - //Ŀһ + //Ŀһ else { JOptionPane.showMessageDialog( textArea, "ˮƽڻܽļӼ˳~","", - JOptionPane.WARNING_MESSAGE, null); - textArea.setText(""); + JOptionPane.WARNING_MESSAGE, null); + textArea.setText(""); } } @@ -156,13 +156,14 @@ public class CalculatorFrame extends JFrame { /* * Ϊ"","x^2","1/x""CE","C","del","" - * ȵķ + * ȵķţûϷʱ */ - if(text.equals("C")||text.equals("CE")) { + else if(clickString.equals("C")||clickString.equals("CE")) { textArea.setText(""); } - else if(text.equals("")){ + else if(clickString.equals("")){ + result=Double.parseDouble(textArea.getText()); if(result>=0) { result=Math.sqrt(result); @@ -172,14 +173,16 @@ public class CalculatorFrame extends JFrame { else { JOptionPane.showMessageDialog( textArea, "Ϊ~","", JOptionPane.WARNING_MESSAGE, null); - } + + } + } - else if(text.equals("x^2")){ + else if(clickString.equals("x^2")){ result=Double.parseDouble(textArea.getText()); result*=result; textArea.setText(result+" "); } - else if(text.equals("1/x")){ + else if(clickString.equals("1/x")){ result=Double.parseDouble(textArea.getText()); if(result!=0){ result=1/result; @@ -191,30 +194,27 @@ public class CalculatorFrame extends JFrame { JOptionPane.WARNING_MESSAGE, null); } } - else if(text.equals("")){ + else if(clickString.equals("")){ result=Double.parseDouble(textArea.getText()); result=-result; textArea.setText(result+" "); } - else if(text.equals("del")){ + else if(clickString.equals("del")){ if(textArea.getText().length()!=0) { textArea.setText(textArea.getText().substring(0,textArea.getText().length()-1)); } else { - textArea.setText("Ѿûпɾֻม\n\n"+"Ҫ밴¡CEߡCվ\n\n"+"Ȼᷢ~"); - } - + JOptionPane.showMessageDialog( null, "ѾûпɾĶ~","", + JOptionPane.WARNING_MESSAGE, null); } } else { - textArea.setText(textArea.getText()+text); + textArea.setText(textArea.getText()+clickString); + } - } - - - + } //*******"","x^2","1/x""CE","C","del",""ȵķŵ˽************** - + }); panelWangge.add(standardButton[i]); } -- Gitee From 2b72b041bad9d776b38fbb6f5c28f5a970644d43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=9C=E9=85=B1?= <果酱@LAPTOP-4H3BJEVK> Date: Tue, 8 Jun 2021 00:00:56 +0800 Subject: [PATCH 12/18] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86=E5=A4=87?= =?UTF-8?q?=E6=B3=A8=EF=BC=8C=E4=BF=AE=E6=94=B9=E4=BA=86=E4=B8=80=E4=BA=9B?= =?UTF-8?q?=E5=AE=9E=E4=BE=8B=E7=9A=84=E5=90=8D=E5=AD=97=EF=BC=8C=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E4=BA=86=E5=8F=AF=E8=AF=BB=E6=80=A7=EF=BC=9B=E7=AA=97?= =?UTF-8?q?=E5=8F=A3=E5=B1=85=E4=B8=AD=E7=9A=84=E4=BB=A3=E7=A0=81=E6=8D=A2?= =?UTF-8?q?=E4=BA=86=E6=9B=B4=E7=AE=80=E6=B4=81=E7=9A=84=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2020spring/CalculatorFrame.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/java2020spring/CalculatorFrame.java b/src/java2020spring/CalculatorFrame.java index 6e6d602..054a404 100644 --- a/src/java2020spring/CalculatorFrame.java +++ b/src/java2020spring/CalculatorFrame.java @@ -98,12 +98,13 @@ public class CalculatorFrame extends JFrame { public void actionPerformed(ActionEvent e) { double result=0; - String regex="[.0123456789]+"; + //String regex="[.0123456789]+"; + // Pattern pattern=Pattern.compile(regex); //Matcher matcher = pattern.matcher(clickString); String []operationalNumber; String textAreaContent=textArea.getText(); - StringTokenizer operationalSymbol=new StringTokenizer(textAreaContent,regex); + StringTokenizer operationalSymbol=new StringTokenizer(textAreaContent,"0123456789."); if(clickString.equals("=")) { //ļӼ˳ȵ㣬ΪָʱĿΪ1ִ² -- Gitee From 06a26f4d04353a8b85ac5d490505cc11df0f0d09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=9C=E9=85=B1?= <果酱@LAPTOP-4H3BJEVK> Date: Tue, 8 Jun 2021 20:01:02 +0800 Subject: [PATCH 13/18] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BA=86=E4=B8=80?= =?UTF-8?q?=E4=BA=9B=E5=A4=87=E6=B3=A8=EF=BC=8C=E6=9A=82=E6=97=B6=E6=83=B3?= =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E7=9A=84=E4=B8=80=E4=BA=9B=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E6=8F=90=E7=A4=BA=E9=83=BD=E5=86=99=E4=BA=86=EF=BC=9A=E5=A6=82?= =?UTF-8?q?=E4=B8=8D=E8=83=BD=E5=9C=A8=E7=A9=BA=E5=80=BC=E6=97=B6=E8=AE=A1?= =?UTF-8?q?=E7=AE=97=EF=BC=8C=E4=B8=8D=E8=83=BD=E5=9C=A8=E6=9C=89=E9=9D=9E?= =?UTF-8?q?=E6=95=B0=E5=AD=97=E6=97=B6=E8=BF=90=E7=AE=97=E7=AD=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2020spring/CalculatorFrame.java | 153 ++++++++++++++++-------- 1 file changed, 105 insertions(+), 48 deletions(-) diff --git a/src/java2020spring/CalculatorFrame.java b/src/java2020spring/CalculatorFrame.java index 054a404..0a5704d 100644 --- a/src/java2020spring/CalculatorFrame.java +++ b/src/java2020spring/CalculatorFrame.java @@ -24,6 +24,8 @@ public class CalculatorFrame extends JFrame { * ֲŵ㣬ʱԻĵ趨 * ⻹ɫӵϸ * */ + + public void initStandard() { JTextArea textArea; @@ -70,6 +72,7 @@ public class CalculatorFrame extends JFrame { if(i<8) { standardButton[i].setBackground(color2); } + if(i>=8&&i<23) { if((i+1)%4==0) { standardButton[i].setBackground(color2); @@ -79,34 +82,30 @@ public class CalculatorFrame extends JFrame { } } + if(i==23) { standardButton[i].setBackground(color1); - } - - + } + // standardButton[i].addActionListener(new ActionListener() { /* * µȺ֮õıеһַ - * Ϊ趨ֻܼλ֣+£%Ϊָţ + * Ϊ趨һֻܼλ֣+£%Ϊָʱ * еֻoperationalNumber[0]operationalNumber[1] * ٽString͵IJתDouble;ͿԽм * - * */ - + * */ public void actionPerformed(ActionEvent e) { - double result=0; - //String regex="[.0123456789]+"; - - // Pattern pattern=Pattern.compile(regex); - //Matcher matcher = pattern.matcher(clickString); - String []operationalNumber; - String textAreaContent=textArea.getText(); - StringTokenizer operationalSymbol=new StringTokenizer(textAreaContent,"0123456789."); + double result=0; // + String []operationalNumber; //飬װҪ + String textAreaContent=textArea.getText(); //ı + StringTokenizer operationalSymbol=new StringTokenizer(textAreaContent,"0123456789."); // if(clickString.equals("=")) { + //ļӼ˳ȵ㣬ΪָʱĿΪ1ִ² if(operationalSymbol.countTokens()==1) { @@ -129,8 +128,7 @@ public class CalculatorFrame extends JFrame { if(Double.parseDouble(operationalNumber[1])!=0) { result=Double.parseDouble(operationalNumber[0])/Double.parseDouble(operationalNumber[1]); textArea.setText(result+""); - } - + } //һԻԷĸΪо else { JOptionPane.showMessageDialog( textArea, "ĸΪ0ܼ~","", @@ -157,50 +155,108 @@ public class CalculatorFrame extends JFrame { /* * Ϊ"","x^2","1/x""CE","C","del","" - * ȵķţûϷʱ + * ȵķţû벻Ϸַʱ + * + * м"","x^2","1/x",""ʱܻͬ + * ûκʱûͿʼͿʼ + * ַзַûԼ + * ʱû + * ʱֻеڢܽ㣬 */ else if(clickString.equals("C")||clickString.equals("CE")) { textArea.setText(""); - } - + } + + //µַǡ̡ûʱԭString͵ַתDoubleͣıҪֵĿ֮ else if(clickString.equals("")){ - result=Double.parseDouble(textArea.getText()); - if(result>=0) { - result=Math.sqrt(result); - textArea.setText(result+" "); - } + if(textAreaContent.isEmpty()){ + JOptionPane.showMessageDialog( textArea, "ûκ~","", + JOptionPane.WARNING_MESSAGE, null); + } + + else if(textAreaContent.contains("+")||textAreaContent.contains("-")||textAreaContent.contains("")||textAreaContent.contains("")||textAreaContent.contains("%")) { + JOptionPane.showMessageDialog( textArea, "IJǴ֣а~","", + JOptionPane.WARNING_MESSAGE, null); + } + + else { + result=Double.parseDouble(textArea.getText()); + if(result>=0) { + result=Math.sqrt(result); + textArea.setText(result+" "); + } //Ϊ0 - else { - JOptionPane.showMessageDialog( textArea, "Ϊ~","", - JOptionPane.WARNING_MESSAGE, null); + else { + JOptionPane.showMessageDialog( textArea, "Ϊ~","", + JOptionPane.WARNING_MESSAGE, null); + } } - } + + //µַǡx^2ûʱԭString͵ַתDoubleͣıҪֵƽ else if(clickString.equals("x^2")){ - result=Double.parseDouble(textArea.getText()); - result*=result; - textArea.setText(result+" "); - } - else if(clickString.equals("1/x")){ - result=Double.parseDouble(textArea.getText()); - if(result!=0){ - result=1/result; - textArea.setText(result+" "); + + if(textAreaContent.isEmpty()){ + JOptionPane.showMessageDialog( textArea, "ûκ~","", + JOptionPane.WARNING_MESSAGE, null); + } + else if(textAreaContent.contains("+")||textAreaContent.contains("-")||textAreaContent.contains("")||textAreaContent.contains("")||textAreaContent.contains("%")) { + JOptionPane.showMessageDialog( textArea, "IJǴ֣а~","", + JOptionPane.WARNING_MESSAGE, null); + } + else { + result=Double.parseDouble(textArea.getText()); + result*=result; + textArea.setText(result+" "); } + } + + //µַǡ1/xûʱԭString͵ַתDoubleͣıҪֵĵĸΪ㣩 + else if(clickString.equals("1/x")){ + if(textAreaContent.isEmpty()){ + JOptionPane.showMessageDialog( textArea, "ûκ~","", + JOptionPane.WARNING_MESSAGE, null); + } + + else if(textAreaContent.contains("+")||textAreaContent.contains("-")||textAreaContent.contains("")||textAreaContent.contains("")||textAreaContent.contains("%")) { + JOptionPane.showMessageDialog( textArea, "IJǴ֣а~","", + JOptionPane.WARNING_MESSAGE, null); + } + else { + result=Double.parseDouble(textArea.getText()); + if(result!=0){ + result=1/result; + textArea.setText(result+" "); + } //ĸΪ0 - else { - JOptionPane.showMessageDialog( null, "0ûе~","", + else { + JOptionPane.showMessageDialog( null, "0ûе~","", JOptionPane.WARNING_MESSAGE, null); + } } } + + //µַǡûʱԭString͵ַתDoubleͣıҪֵ෴ else if(clickString.equals("")){ - result=Double.parseDouble(textArea.getText()); - result=-result; - textArea.setText(result+" "); - + if(textAreaContent.isEmpty()){ + JOptionPane.showMessageDialog( textArea, "ûκ~","", + JOptionPane.WARNING_MESSAGE, null); + } + + else if(textAreaContent.contains("+")||textAreaContent.contains("-")||textAreaContent.contains("")||textAreaContent.contains("")||textAreaContent.contains("%")) { + JOptionPane.showMessageDialog( textArea, "IJǴ֣а~","", + JOptionPane.WARNING_MESSAGE, null); + } + else { + result=Double.parseDouble(textArea.getText()); + result=-result; + textArea.setText(result+" "); + } } + + //µַǡdelıݲΪʱÿһξͼһַ else if(clickString.equals("del")){ if(textArea.getText().length()!=0) { textArea.setText(textArea.getText().substring(0,textArea.getText().length()-1)); @@ -208,14 +264,15 @@ public class CalculatorFrame extends JFrame { else { JOptionPane.showMessageDialog( null, "ѾûпɾĶ~","", JOptionPane.WARNING_MESSAGE, null); } - } + } + else { textArea.setText(textArea.getText()+clickString); - } - } - //*******"","x^2","1/x""CE","C","del",""ȵķŵ˽************** - + } + + //*********************"","x^2","1/x""CE","C","del",""ȵķŵ˽*************************** + }); panelWangge.add(standardButton[i]); } -- Gitee From 2160c611062bd2ed8cd80c62f0f1e68c206029c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=9C=E9=85=B1?= <果酱@LAPTOP-4H3BJEVK> Date: Wed, 9 Jun 2021 13:14:53 +0800 Subject: [PATCH 14/18] =?UTF-8?q?=E5=86=8D=E6=B7=BB=E5=8A=A0=E4=BA=86?= =?UTF-8?q?=E5=87=A0=E4=B8=AA=E8=AE=A1=E7=AE=97=E5=8A=9F=E8=83=BD=EF=BC=8C?= =?UTF-8?q?=E5=A6=82=E8=AE=A1=E7=AE=97=E4=B8=80=E4=B8=AA=E6=95=B0=E7=9A=84?= =?UTF-8?q?"lg","e^x",?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2020spring/CalculatorFrame.java | 63 ++++++++++++++++++------- 1 file changed, 47 insertions(+), 16 deletions(-) diff --git a/src/java2020spring/CalculatorFrame.java b/src/java2020spring/CalculatorFrame.java index 0a5704d..e2b1a1e 100644 --- a/src/java2020spring/CalculatorFrame.java +++ b/src/java2020spring/CalculatorFrame.java @@ -45,10 +45,11 @@ public class CalculatorFrame extends JFrame { textArea.setFont(f); panelWangge=new JPanel();//壬Űť - panelWangge.setLayout(new GridLayout(6,4)); - JButton []standardButton=new JButton[24];//24 Ŧ + panelWangge.setLayout(new GridLayout(7,4)); + JButton []standardButton=new JButton[28];//28 Ŧ String str[]= { + "","lg","","e^x", "%","","x^2","1/x", "CE","C","del","", "7","8","9","", @@ -69,11 +70,11 @@ public class CalculatorFrame extends JFrame { standardButton[i].setFont(new Font("",Font.PLAIN,18)); standardButton[i].setForeground(Color.darkGray ); - if(i<8) { + if(i<12) { standardButton[i].setBackground(color2); } - if(i>=8&&i<23) { + if(i>=12&&i<28) { if((i+1)%4==0) { standardButton[i].setBackground(color2); } @@ -83,7 +84,7 @@ public class CalculatorFrame extends JFrame { } } - if(i==23) { + if(i==28) { standardButton[i].setBackground(color1); } // @@ -100,6 +101,7 @@ public class CalculatorFrame extends JFrame { public void actionPerformed(ActionEvent e) { double result=0; // + int sum=1; String []operationalNumber; //飬װҪ String textAreaContent=textArea.getText(); //ı StringTokenizer operationalSymbol=new StringTokenizer(textAreaContent,"0123456789."); // @@ -135,10 +137,6 @@ public class CalculatorFrame extends JFrame { JOptionPane.WARNING_MESSAGE, null); } } - else if((operationalNumber=textAreaContent.split("\\%")).length==2) { - result=Double.parseDouble(operationalNumber[0])%Double.parseDouble(operationalNumber[1]); - textArea.setText(result+""); - } } @@ -159,7 +157,7 @@ public class CalculatorFrame extends JFrame { * * м"","x^2","1/x",""ʱܻͬ * ûκʱûͿʼͿʼ - * ַзַûԼ + * ַзַ(+-)ûԼ * ʱû * ʱֻеڢܽ㣬 */ @@ -175,7 +173,7 @@ public class CalculatorFrame extends JFrame { JOptionPane.WARNING_MESSAGE, null); } - else if(textAreaContent.contains("+")||textAreaContent.contains("-")||textAreaContent.contains("")||textAreaContent.contains("")||textAreaContent.contains("%")) { + else if(textAreaContent.contains("")||textAreaContent.contains("")||textAreaContent.contains("%")) { JOptionPane.showMessageDialog( textArea, "IJǴ֣а~","", JOptionPane.WARNING_MESSAGE, null); } @@ -202,7 +200,7 @@ public class CalculatorFrame extends JFrame { JOptionPane.showMessageDialog( textArea, "ûκ~","", JOptionPane.WARNING_MESSAGE, null); } - else if(textAreaContent.contains("+")||textAreaContent.contains("-")||textAreaContent.contains("")||textAreaContent.contains("")||textAreaContent.contains("%")) { + else if(textAreaContent.contains("")||textAreaContent.contains("")||textAreaContent.contains("%")) { JOptionPane.showMessageDialog( textArea, "IJǴ֣а~","", JOptionPane.WARNING_MESSAGE, null); } @@ -220,7 +218,7 @@ public class CalculatorFrame extends JFrame { JOptionPane.WARNING_MESSAGE, null); } - else if(textAreaContent.contains("+")||textAreaContent.contains("-")||textAreaContent.contains("")||textAreaContent.contains("")||textAreaContent.contains("%")) { + else if(textAreaContent.contains("")||textAreaContent.contains("")||textAreaContent.contains("%")) { JOptionPane.showMessageDialog( textArea, "IJǴ֣а~","", JOptionPane.WARNING_MESSAGE, null); } @@ -245,7 +243,7 @@ public class CalculatorFrame extends JFrame { JOptionPane.WARNING_MESSAGE, null); } - else if(textAreaContent.contains("+")||textAreaContent.contains("-")||textAreaContent.contains("")||textAreaContent.contains("")||textAreaContent.contains("%")) { + else if(textAreaContent.contains("")||textAreaContent.contains("")||textAreaContent.contains("%")) { JOptionPane.showMessageDialog( textArea, "IJǴ֣а~","", JOptionPane.WARNING_MESSAGE, null); } @@ -256,9 +254,42 @@ public class CalculatorFrame extends JFrame { } } + //µַǡe^xûʱԭString͵ַתDoubleͣıҪeresultη + else if(clickString.equals("e^x")){ + if(textAreaContent.isEmpty()){ + JOptionPane.showMessageDialog( textArea, "ٰe^x~","", + JOptionPane.WARNING_MESSAGE, null); + } + else if(textAreaContent.contains("")||textAreaContent.contains("")||textAreaContent.contains("%")) { + JOptionPane.showMessageDialog( textArea, "IJǴ֣а~","", + JOptionPane.WARNING_MESSAGE, null); + } + else { + result=Double.parseDouble(textArea.getText()); + result=Math.exp(result); + textArea.setText(result+" "); + } + } + //µַǡlgûʱԭString͵ַתDoubleͣı10Ϊ׵resultĶ + else if(clickString.equals("lg")){ + if(textAreaContent.isEmpty()){ + JOptionPane.showMessageDialog( textArea, "ٰlg~","", + JOptionPane.WARNING_MESSAGE, null); + } + else if(textAreaContent.contains("")||textAreaContent.contains("")||textAreaContent.contains("%")) { + JOptionPane.showMessageDialog( textArea, "IJǴ֣а~","", + JOptionPane.WARNING_MESSAGE, null); + } + else { + result=Double.parseDouble(textArea.getText()); + result=Math.log(result); + textArea.setText(result+""); + } + } + //µַǡdelıݲΪʱÿһξͼһַ else if(clickString.equals("del")){ - if(textArea.getText().length()!=0) { + if(textAreaContent.length()!=0) { textArea.setText(textArea.getText().substring(0,textArea.getText().length()-1)); } else { @@ -267,7 +298,7 @@ public class CalculatorFrame extends JFrame { } else { - textArea.setText(textArea.getText()+clickString); + textArea.setText(textAreaContent+clickString); } } -- Gitee From 199f52158fddb508b31420c84f39cdcb457fc22a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=9C=E9=85=B1?= <果酱@LAPTOP-4H3BJEVK> Date: Wed, 9 Jun 2021 18:18:07 +0800 Subject: [PATCH 15/18] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86=E4=B8=A4?= =?UTF-8?q?=E4=B8=AA=E6=8C=89=E9=92=AE=EF=BC=8C=E7=94=A8=E4=BB=A5=E8=AE=A1?= =?UTF-8?q?=E7=AE=97ln=EF=BC=8C2^x=E3=80=82=E5=B9=B6=E4=B8=94=E4=B8=BA?= =?UTF-8?q?=E4=B9=8B=E6=B7=BB=E5=8A=A0=E4=BA=86=E4=B8=80=E4=BA=9B=E5=8F=91?= =?UTF-8?q?=E7=94=9F=E9=94=99=E8=AF=AF=E6=97=B6=E7=9A=84=E8=AD=A6=E5=91=8A?= =?UTF-8?q?=E5=AF=B9=E8=AF=9D=E6=A1=86=E3=80=82=E5=AF=B9=E4=B9=8B=E5=89=8D?= =?UTF-8?q?=E7=9A=84=E4=B8=80=E4=BA=9B=E4=BB=A3=E7=A0=81=E8=BF=9B=E8=A1=8C?= =?UTF-8?q?=E4=BA=86=E5=AE=8C=E5=96=84=EF=BC=8C=E5=A6=82=EF=BC=8C=E5=9C=A8?= =?UTF-8?q?=E6=9F=90=E4=BA=9B=E8=AD=A6=E5=91=8A=E5=AF=B9=E8=AF=9D=E6=A1=86?= =?UTF-8?q?=E5=BC=B9=E5=87=BA=E5=90=8E=E4=BC=9A=E5=AF=B9=E6=96=87=E6=9C=AC?= =?UTF-8?q?=E5=9F=9F=E6=B8=85=E7=A9=BA=EF=BC=9B=E5=88=A0=E9=99=A4=E4=BA=86?= =?UTF-8?q?=E5=AF=B9=E2=80=9C+=E2=80=9D=E2=80=9C-=E2=80=9D=E7=9A=84?= =?UTF-8?q?=E8=AD=A6=E5=91=8A=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2020spring/CalculatorFrame.java | 64 +++++++++++++++++++++++-- 1 file changed, 60 insertions(+), 4 deletions(-) diff --git a/src/java2020spring/CalculatorFrame.java b/src/java2020spring/CalculatorFrame.java index e2b1a1e..a5a0f3a 100644 --- a/src/java2020spring/CalculatorFrame.java +++ b/src/java2020spring/CalculatorFrame.java @@ -49,7 +49,7 @@ public class CalculatorFrame extends JFrame { JButton []standardButton=new JButton[28];//28 Ŧ String str[]= { - "","lg","","e^x", + "ln","lg","2^x","e^x", "%","","x^2","1/x", "CE","C","del","", "7","8","9","", @@ -135,6 +135,7 @@ public class CalculatorFrame extends JFrame { else { JOptionPane.showMessageDialog( textArea, "ĸΪ0ܼ~","", JOptionPane.WARNING_MESSAGE, null); + textArea.setText(""); } } @@ -155,11 +156,14 @@ public class CalculatorFrame extends JFrame { * Ϊ"","x^2","1/x""CE","C","del","" * ȵķţû벻Ϸַʱ * - * м"","x^2","1/x",""ʱܻͬ + * м"","x^2","1/x","","2^x","e^x",ʱܻͬ * ûκʱûͿʼͿʼ * ַзַ(+-)ûԼ * ʱû * ʱֻеڢܽ㣬 + * + * "ln","lg"ûϵܻ û븺Ŀ + * */ else if(clickString.equals("C")||clickString.equals("CE")) { textArea.setText(""); @@ -176,6 +180,7 @@ public class CalculatorFrame extends JFrame { else if(textAreaContent.contains("")||textAreaContent.contains("")||textAreaContent.contains("%")) { JOptionPane.showMessageDialog( textArea, "IJǴ֣а~","", JOptionPane.WARNING_MESSAGE, null); + textArea.setText(""); } else { @@ -188,6 +193,7 @@ public class CalculatorFrame extends JFrame { else { JOptionPane.showMessageDialog( textArea, "Ϊ~","", JOptionPane.WARNING_MESSAGE, null); + textArea.setText(""); } } @@ -203,6 +209,7 @@ public class CalculatorFrame extends JFrame { else if(textAreaContent.contains("")||textAreaContent.contains("")||textAreaContent.contains("%")) { JOptionPane.showMessageDialog( textArea, "IJǴ֣а~","", JOptionPane.WARNING_MESSAGE, null); + textArea.setText(""); } else { result=Double.parseDouble(textArea.getText()); @@ -221,6 +228,7 @@ public class CalculatorFrame extends JFrame { else if(textAreaContent.contains("")||textAreaContent.contains("")||textAreaContent.contains("%")) { JOptionPane.showMessageDialog( textArea, "IJǴ֣а~","", JOptionPane.WARNING_MESSAGE, null); + textArea.setText(""); } else { result=Double.parseDouble(textArea.getText()); @@ -232,6 +240,7 @@ public class CalculatorFrame extends JFrame { else { JOptionPane.showMessageDialog( null, "0ûе~","", JOptionPane.WARNING_MESSAGE, null); + textArea.setText(""); } } } @@ -246,6 +255,7 @@ public class CalculatorFrame extends JFrame { else if(textAreaContent.contains("")||textAreaContent.contains("")||textAreaContent.contains("%")) { JOptionPane.showMessageDialog( textArea, "IJǴ֣а~","", JOptionPane.WARNING_MESSAGE, null); + textArea.setText(""); } else { result=Double.parseDouble(textArea.getText()); @@ -263,6 +273,7 @@ public class CalculatorFrame extends JFrame { else if(textAreaContent.contains("")||textAreaContent.contains("")||textAreaContent.contains("%")) { JOptionPane.showMessageDialog( textArea, "IJǴ֣а~","", JOptionPane.WARNING_MESSAGE, null); + textArea.setText(""); } else { result=Double.parseDouble(textArea.getText()); @@ -270,7 +281,24 @@ public class CalculatorFrame extends JFrame { textArea.setText(result+" "); } } - //µַǡlgûʱԭString͵ַתDoubleͣı10Ϊ׵resultĶ + //µַǡ2^xûʱԭString͵ַתDoubleͣıҪ2resultη + else if(clickString.equals("2^x")){ + if(textAreaContent.isEmpty()){ + JOptionPane.showMessageDialog( textArea, "ٰ2^x~","", + JOptionPane.WARNING_MESSAGE, null); + } + else if(textAreaContent.contains("")||textAreaContent.contains("")||textAreaContent.contains("%")) { + JOptionPane.showMessageDialog( textArea, "IJǴ֣а~","", + JOptionPane.WARNING_MESSAGE, null); + textArea.setText(""); + } + else { + result=Double.parseDouble(textArea.getText()); + result=Math.pow(2, result); + textArea.setText(result+" "); + } + } + //µַǡlgûʱԭString͵ַתDoubleͣı10Ϊ׵resultΪĶresultֵ㣩 else if(clickString.equals("lg")){ if(textAreaContent.isEmpty()){ JOptionPane.showMessageDialog( textArea, "ٰlg~","", @@ -279,14 +307,42 @@ public class CalculatorFrame extends JFrame { else if(textAreaContent.contains("")||textAreaContent.contains("")||textAreaContent.contains("%")) { JOptionPane.showMessageDialog( textArea, "IJǴ֣а~","", JOptionPane.WARNING_MESSAGE, null); + textArea.setText(""); } + else if(Double.parseDouble(textArea.getText())<=0) {//ֵСڵ㣨Сڵ㣩ʱ + JOptionPane.showMessageDialog( textArea, "Сڵ0~","", + JOptionPane.WARNING_MESSAGE, null); + textArea.setText(""); + } else { result=Double.parseDouble(textArea.getText()); - result=Math.log(result); + result=Math.log10(result); textArea.setText(result+""); } } + //µַǡlgûʱԭString͵ַתDoubleͣıeΪ׵resultΪĶresultֵ㣩 + else if(clickString.equals("ln")){ + if(textAreaContent.isEmpty()){ + JOptionPane.showMessageDialog( textArea, "ٰln~","", + JOptionPane.WARNING_MESSAGE, null); + } + else if(textAreaContent.contains("")||textAreaContent.contains("")||textAreaContent.contains("%")) { + JOptionPane.showMessageDialog( textArea, "IJǴ֣а~","", + JOptionPane.WARNING_MESSAGE, null); + textArea.setText(""); + } + else if(Double.parseDouble(textArea.getText())<=0) {//ֵСڵ㣨Сڵ㣩ʱ + JOptionPane.showMessageDialog( textArea, "Сڵ0~","", + JOptionPane.WARNING_MESSAGE, null); + textArea.setText(""); + } + else { + result=Double.parseDouble(textArea.getText()); + result=Math.log10(result)/Math.log10(Math.E); + textArea.setText(result+""); + } + } //µַǡdelıݲΪʱÿһξͼһַ else if(clickString.equals("del")){ if(textAreaContent.length()!=0) { -- Gitee From ae77faebbbfce0d0b4a21463b0bdb2a3d453d7f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=9C=E9=85=B1?= <果酱@LAPTOP-4H3BJEVK> Date: Wed, 9 Jun 2021 18:51:09 +0800 Subject: [PATCH 16/18] =?UTF-8?q?=E5=B0=86=E6=BC=8F=E7=9A=84%=EF=BC=88?= =?UTF-8?q?=E5=8F=96=E4=BD=99=EF=BC=89=E7=9A=84=E8=BF=90=E7=AE=97=E5=8A=A0?= =?UTF-8?q?=E4=B8=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2020spring/CalculatorFrame.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/java2020spring/CalculatorFrame.java b/src/java2020spring/CalculatorFrame.java index a5a0f3a..bdfa03d 100644 --- a/src/java2020spring/CalculatorFrame.java +++ b/src/java2020spring/CalculatorFrame.java @@ -93,7 +93,7 @@ public class CalculatorFrame extends JFrame { /* * µȺ֮õıеһַ - * Ϊ趨һֻܼλ֣+£%Ϊָʱ + * Ϊ趨һֻܼλ֣+£modΪָʱ * еֻoperationalNumber[0]operationalNumber[1] * ٽString͵IJתDouble;ͿԽм * @@ -101,7 +101,6 @@ public class CalculatorFrame extends JFrame { public void actionPerformed(ActionEvent e) { double result=0; // - int sum=1; String []operationalNumber; //飬װҪ String textAreaContent=textArea.getText(); //ı StringTokenizer operationalSymbol=new StringTokenizer(textAreaContent,"0123456789."); // @@ -130,7 +129,7 @@ public class CalculatorFrame extends JFrame { if(Double.parseDouble(operationalNumber[1])!=0) { result=Double.parseDouble(operationalNumber[0])/Double.parseDouble(operationalNumber[1]); textArea.setText(result+""); - } + } //һԻԷĸΪо else { JOptionPane.showMessageDialog( textArea, "ĸΪ0ܼ~","", @@ -138,6 +137,13 @@ public class CalculatorFrame extends JFrame { textArea.setText(""); } } + + else if((operationalNumber=textAreaContent.split("\\%")).length==2) { + result=Double.parseDouble(operationalNumber[0])%Double.parseDouble(operationalNumber[1]); + textArea.setText(result+""); + + } + } -- Gitee From 44630d0e1620854c515758b261a36dc45db9b515 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=9C=E9=85=B1?= <果酱@LAPTOP-4H3BJEVK> Date: Wed, 9 Jun 2021 19:08:09 +0800 Subject: [PATCH 17/18] =?UTF-8?q?=E5=9B=A0=E4=B8=BA"CE"=E4=B8=8E=E2=80=9CC?= =?UTF-8?q?=E2=80=9D=E6=9C=89=E8=AF=A5=E8=AE=A1=E7=AE=97=E5=99=A8=E4=B8=AD?= =?UTF-8?q?=E6=9C=89=E7=9B=B8=E5=90=8C=E7=9A=84=E5=8A=9F=E8=83=BD=EF=BC=8C?= =?UTF-8?q?=E6=89=80=E4=BB=A5=E5=88=A0=E9=99=A4=E4=BA=86=E2=80=9CCE?= =?UTF-8?q?=E2=80=9D=E9=94=AE=EF=BC=8C=E5=A2=9E=E5=8A=A0=E4=BA=86x^3?= =?UTF-8?q?=E7=9A=84=E5=8A=9F=E8=83=BD=EF=BC=8C=E5=B9=B6=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86=E4=B8=80=E4=BA=9B=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2020spring/CalculatorFrame.java | 31 ++++++++++++++++++------- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/src/java2020spring/CalculatorFrame.java b/src/java2020spring/CalculatorFrame.java index bdfa03d..b303da8 100644 --- a/src/java2020spring/CalculatorFrame.java +++ b/src/java2020spring/CalculatorFrame.java @@ -51,7 +51,7 @@ public class CalculatorFrame extends JFrame { String str[]= { "ln","lg","2^x","e^x", "%","","x^2","1/x", - "CE","C","del","", + "C","del","x^3","", "7","8","9","", "4","5","6","-", "1","2","3","+", @@ -87,13 +87,13 @@ public class CalculatorFrame extends JFrame { if(i==28) { standardButton[i].setBackground(color1); } - // + // **************֫ɫ˽********* standardButton[i].addActionListener(new ActionListener() { /* * µȺ֮õıеһַ - * Ϊ趨һֻܼλ֣+£modΪָʱ + * Ϊ趨һֻܼλ֣+£%Ϊָʱ * еֻoperationalNumber[0]operationalNumber[1] * ٽString͵IJתDouble;ͿԽм * @@ -146,7 +146,6 @@ public class CalculatorFrame extends JFrame { } - //Ŀһ else { JOptionPane.showMessageDialog( textArea, "ˮƽڻܽļӼ˳~","", @@ -155,14 +154,14 @@ public class CalculatorFrame extends JFrame { } } - //***************+,-,£%ļ㵽˽********************* + //***************+,-,£%ȡࣩļ㵽˽********************* /* * Ϊ"","x^2","1/x""CE","C","del","" * ȵķţû벻Ϸַʱ * - * м"","x^2","1/x","","2^x","e^x",ʱܻͬ + * м"","x^2","1/x","","2^x","e^x","x^3"ʱܻͬ * ûκʱûͿʼͿʼ * ַзַ(+-)ûԼ * ʱû @@ -171,7 +170,7 @@ public class CalculatorFrame extends JFrame { * "ln","lg"ûϵܻ û븺Ŀ * */ - else if(clickString.equals("C")||clickString.equals("CE")) { + else if(clickString.equals("C")) { textArea.setText(""); } @@ -223,7 +222,23 @@ public class CalculatorFrame extends JFrame { textArea.setText(result+" "); } } - + //µַǡx^2ûʱԭString͵ַתDoubleͣıҪֵƽ + else if(clickString.equals("x^3")){ + if(textAreaContent.isEmpty()){ + JOptionPane.showMessageDialog( textArea, "ûκ~","", + JOptionPane.WARNING_MESSAGE, null); + } + else if(textAreaContent.contains("")||textAreaContent.contains("")||textAreaContent.contains("%")) { + JOptionPane.showMessageDialog( textArea, "IJǴ֣а~","", + JOptionPane.WARNING_MESSAGE, null); + textArea.setText(""); + } + else { + result=Double.parseDouble(textArea.getText()); + result=result*result*result; + textArea.setText(result+" "); + } + } //µַǡ1/xûʱԭString͵ַתDoubleͣıҪֵĵĸΪ㣩 else if(clickString.equals("1/x")){ if(textAreaContent.isEmpty()){ -- Gitee From ac764c8048a5507c0f5aea94055d0a3c34e946e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=9C=E9=85=B1?= <果酱@LAPTOP-4H3BJEVK> Date: Thu, 10 Jun 2021 00:34:50 +0800 Subject: [PATCH 18/18] =?UTF-8?q?=E5=81=9A=E4=BA=86=E4=B8=80=E4=BA=9B?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2020spring/CalculatorFrame.java | 56 ++++++++++++------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/src/java2020spring/CalculatorFrame.java b/src/java2020spring/CalculatorFrame.java index b303da8..6d744d3 100644 --- a/src/java2020spring/CalculatorFrame.java +++ b/src/java2020spring/CalculatorFrame.java @@ -32,26 +32,26 @@ public class CalculatorFrame extends JFrame { JPanel panelWangge;//壬 JMenu leixing; //˵ JMenuBar menubar; - Font f; + Font f; //ı - leixing=new JMenu("׼"); - menubar=new JMenuBar(); + leixing=new JMenu("׼"); //ʾ + menubar=new JMenuBar(); menubar.add(leixing); - setJMenuBar(menubar); + setJMenuBar(menubar); - textArea=new JTextArea(8,6); - add(textArea,BorderLayout.NORTH);//ıӵ - f=new Font("Բ",Font.BOLD,20);//ıֺ + textArea=new JTextArea(6,4); + add(textArea,BorderLayout.NORTH); //ıӵ + f=new Font("Բ",Font.BOLD,30); //ıֺ textArea.setFont(f); - panelWangge=new JPanel();//壬Űť + panelWangge=new JPanel(); //壬Űť panelWangge.setLayout(new GridLayout(7,4)); JButton []standardButton=new JButton[28];//28 Ŧ String str[]= { "ln","lg","2^x","e^x", - "%","","x^2","1/x", - "C","del","x^3","", + "%","","x^2","x^3", + "C","del","1/x","", "7","8","9","", "4","5","6","-", "1","2","3","+", @@ -65,16 +65,16 @@ public class CalculatorFrame extends JFrame { /* * ðťɫС */ - Color color1=new Color(126,192,238); - Color color2=new Color(232,232,232); - standardButton[i].setFont(new Font("",Font.PLAIN,18)); + Color color1=new Color(126,192,238); //ɫ1 + Color color2=new Color(232,232,232); //ɫ2 + standardButton[i].setFont(new Font("",Font.PLAIN,18));//ťĴС standardButton[i].setForeground(Color.darkGray ); - if(i<12) { + if(i<12) { //112İťɫΪ ɫ2 standardButton[i].setBackground(color2); } - if(i>=12&&i<28) { + if(i>=12&&i<28) { //1228İťұߵһаťɫΪ ɫ2 if((i+1)%4==0) { standardButton[i].setBackground(color2); } @@ -84,13 +84,12 @@ public class CalculatorFrame extends JFrame { } } - if(i==28) { + if(i==28) { //һťΪ ɫ1 standardButton[i].setBackground(color1); } - // **************֫ɫ˽********* + // *********************ɫ˽****************** - standardButton[i].addActionListener(new ActionListener() { - + standardButton[i].addActionListener(new ActionListener() { //Ϊťü /* * µȺ֮õıеһַ * Ϊ趨һֻܼλ֣+£%Ϊָʱ @@ -105,8 +104,8 @@ public class CalculatorFrame extends JFrame { String textAreaContent=textArea.getText(); //ı StringTokenizer operationalSymbol=new StringTokenizer(textAreaContent,"0123456789."); // + if(clickString.equals("=")) { - //ļӼ˳ȵ㣬ΪָʱĿΪ1ִ² if(operationalSymbol.countTokens()==1) { @@ -145,7 +144,7 @@ public class CalculatorFrame extends JFrame { } - } + } //Ŀһ else { JOptionPane.showMessageDialog( textArea, "ˮƽڻܽļӼ˳~","", @@ -154,7 +153,7 @@ public class CalculatorFrame extends JFrame { } } - //***************+,-,£%ȡࣩļ㵽˽********************* + //***************+,-,£%ȡࣩļ㵽˽********************* /* @@ -177,11 +176,12 @@ public class CalculatorFrame extends JFrame { //µַǡ̡ûʱԭString͵ַתDoubleͣıҪֵĿ֮ else if(clickString.equals("")){ + + if(textAreaContent.isEmpty()){ JOptionPane.showMessageDialog( textArea, "ûκ~","", JOptionPane.WARNING_MESSAGE, null); - } - + } else if(textAreaContent.contains("")||textAreaContent.contains("")||textAreaContent.contains("%")) { JOptionPane.showMessageDialog( textArea, "IJǴ֣а~","", JOptionPane.WARNING_MESSAGE, null); @@ -191,7 +191,7 @@ public class CalculatorFrame extends JFrame { else { result=Double.parseDouble(textArea.getText()); if(result>=0) { - result=Math.sqrt(result); + result=Math.sqrt(result); textArea.setText(result+" "); } //Ϊ0 @@ -222,7 +222,7 @@ public class CalculatorFrame extends JFrame { textArea.setText(result+" "); } } - //µַǡx^2ûʱԭString͵ַתDoubleͣıҪֵƽ + //µַǡx^3ûʱԭString͵ַתDoubleͣıҪֵƽ else if(clickString.equals("x^3")){ if(textAreaContent.isEmpty()){ JOptionPane.showMessageDialog( textArea, "ûκ~","", @@ -382,10 +382,10 @@ public class CalculatorFrame extends JFrame { //*********************"","x^2","1/x""CE","C","del",""ȵķŵ˽*************************** }); - panelWangge.add(standardButton[i]); + panelWangge.add(standardButton[i]);//Ѱťӵ } - add(panelWangge,BorderLayout.CENTER); + add(panelWangge,BorderLayout.CENTER); //ӵڵм } } -- Gitee