From b189119c158900c4e4cdba9ad907737f3e3b429e Mon Sep 17 00:00:00 2001 From: lululu Date: Thu, 10 Jun 2021 11:09:08 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E6=9C=89=E5=A4=A7=E8=87=B4=E6=A1=86?= =?UTF-8?q?=E6=9E=B6=E4=BA=86=EF=BC=8C=E6=AD=A3=E5=9C=A8=E6=94=B9=E8=BF=9B?= =?UTF-8?q?=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2021spring/Calculator.java | 273 +++++++++++++++++++++++++++++ src/java2021spring/Main.java | 11 ++ 2 files changed, 284 insertions(+) create mode 100644 src/java2021spring/Calculator.java create mode 100644 src/java2021spring/Main.java diff --git a/src/java2021spring/Calculator.java b/src/java2021spring/Calculator.java new file mode 100644 index 0000000..fd4b6db --- /dev/null +++ b/src/java2021spring/Calculator.java @@ -0,0 +1,273 @@ +package java2021spring; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import javax.swing.*; +public class Calculator extends JFrame { + private StringBuilder sBuilder = new StringBuilder(); + private Double b; + private Double c; + private Double sum; + private Integer t; + JPanel p1 = new JPanel(); + JPanel p2 = new JPanel(new GridLayout(5, 4, 3, 3 )); + JTextField inputText; + JTextArea textShow; + JButton button1=new JButton("1"); + JButton button2=new JButton("2"); + JButton button3=new JButton("3"); + JButton button4=new JButton("4"); + JButton button5=new JButton("5"); + JButton button6=new JButton("6"); + JButton button7=new JButton("7"); + JButton button8=new JButton("8"); + JButton button9=new JButton("9"); + JButton button0=new JButton("0"); + JButton buttonadd=new JButton("+"); + JButton buttonminus=new JButton("-"); + JButton buttonmult=new JButton("÷"); + JButton buttondivid=new JButton("×"); + JButton buttonequal=new JButton("="); + JButton buttonper=new JButton("%"); + JButton buttonclear=new JButton("C"); + JButton buttondelete=new JButton("←"); + JButton buttonpoint=new JButton("."); + JButton buttonx=new JButton("1/x"); + public Calculator(){ + init(); + menu(); + put(); + setVisible(true); + setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + } + void init() { + inputText=new JTextField(); + Dimension mid=new Dimension(480,70); + inputText.setPreferredSize(mid); + textShow=new JTextArea(1,30); + Font a=new Font("dialog", 1, 31); + inputText.setFont(a); + buttonclear.setFont(a); + buttonpoint.setFont(a); + buttondelete.setFont(new Font("dialog",1,23)); + buttonadd.setFont(a); + buttonminus.setFont(a); + buttondivid.setFont(a); + buttonmult.setFont(a); + buttonequal.setFont(a); + buttonper.setFont(a); + buttonx.setFont(new Font("dialog",1,20)); + button1.setFont(a); + button2.setFont(a); + button3.setFont(a); + button4.setFont(a); + button5.setFont(a); + button6.setFont(a); + button7.setFont(a); + button8.setFont(a); + button9.setFont(a); + button0.setFont(a); + p1.add(inputText); + this.add(p1, BorderLayout.NORTH); + this.add(p2, BorderLayout.CENTER); + p2.add(buttonclear); + p2.add(buttonper); + p2.add(buttonpoint); + p2.add(buttondelete); + p2.add(button1); + p2.add(button2); + p2.add(button3); + p2.add(buttonadd); + p2.add(button4); + p2.add(button5); + p2.add(button6); + p2.add(buttonminus); + p2.add(button7); + p2.add(button8); + p2.add(button9); + p2.add(buttondivid); + p2.add(buttonequal); + p2.add(button0); + p2.add(buttonx); + p2.add(buttonmult); + } + void menu() { + JMenuBar menubar=new JMenuBar(); + JMenu menu1=new JMenu("菜单"); + JMenu subMenu=new JMenu("帮助"); + menu1.add(subMenu); + subMenu.add(new JMenuItem("编者太菜了,功能正在开发中")); + subMenu.add(new JMenuItem("将就着看吧")); + menubar.add(menu1); + setJMenuBar(menubar); + } + void put() { + button0.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + sBuilder.append("0"); + inputText.setText(sBuilder.toString()); + }}); + button1.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + sBuilder.append("1"); + inputText.setText(sBuilder.toString()); + }}); + button2.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + sBuilder.append("2"); + inputText.setText(sBuilder.toString()); + }}); + button3.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + sBuilder.append("3"); + inputText.setText(sBuilder.toString()); + }}); + button4.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + sBuilder.append("4"); + inputText.setText(sBuilder.toString()); + }}); + button5.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + sBuilder.append("5"); + inputText.setText(sBuilder.toString()); + }}); + button6.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + sBuilder.append("6"); + inputText.setText(sBuilder.toString()); + }}); + button7.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + sBuilder.append("7"); + inputText.setText(sBuilder.toString()); + }}); + button8.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + sBuilder.append("8"); + inputText.setText(sBuilder.toString()); + }}); + button9.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + sBuilder.append("9"); + inputText.setText(sBuilder.toString()); + }}); + buttonpoint.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + sBuilder.append("."); + inputText.setText(sBuilder.toString()); + }}); + buttonclear.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + sBuilder=new StringBuilder(); + inputText.setText(""); + }}); + buttondelete.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + if(!"".equals(sBuilder.toString())) { + sBuilder.deleteCharAt(sBuilder.length() - 1); + inputText.setText(sBuilder.toString()); + } + }}); + buttonadd.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + b = Double.parseDouble(sBuilder.toString()); + sBuilder = new StringBuilder(); + inputText.setText("+"); + t = 0; + } + }); + buttonminus.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + b = Double.parseDouble(sBuilder.toString()); + sBuilder = new StringBuilder(); + inputText.setText("-"); + t = 1; + } + }); + buttondivid.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + b = Double.parseDouble(sBuilder.toString()); + sBuilder = new StringBuilder(); + inputText.setText("×"); + t = 2; + } + }); + buttonmult.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + b = Double.parseDouble(sBuilder.toString()); + sBuilder = new StringBuilder(); + inputText.setText("÷"); + t = 3; + } + }); + buttonper.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + b = Double.parseDouble(sBuilder.toString()); + sBuilder = new StringBuilder(); + inputText.setText("%"); + t = 4; + } + }); + buttonx.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + b = Double.parseDouble(sBuilder.toString()); + sBuilder = new StringBuilder(); + inputText.setText(""); + t = 5; + } + }); + buttonequal.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + if (!"".equals(sBuilder.toString()) && (!(b == 0.0))) { + c = Double.parseDouble(sBuilder.toString()); + if (t == 0) { + sum=b + c; + inputText.setText(sum.toString()); + sBuilder = new StringBuilder(); + sBuilder.append(sum); + } + else if (t == 1) { + sum=b - c; + inputText.setText(sum.toString()); + sBuilder = new StringBuilder(); + sBuilder.append(sum); + } + else if (t == 2) { + sum=b * c; + inputText.setText(sum.toString()); + sBuilder = new StringBuilder(); + sBuilder.append(sum); + } + else if (t == 3) { + sum=b / c; + inputText.setText(sum.toString()); + sBuilder = new StringBuilder(); + sBuilder.append(sum); + } + else if(t == 4) { + sum=b/100; + inputText.setText(sum.toString()); + sBuilder = new StringBuilder(); + sBuilder.append(sum); + } + else if(t == 5) { + sum=1/b; + inputText.setText(sum.toString()); + sBuilder = new StringBuilder(); + sBuilder.append(sum); + } + else { + inputText.setText(sBuilder.toString()); + } + + } + } + }); + + } +} + + + + diff --git a/src/java2021spring/Main.java b/src/java2021spring/Main.java new file mode 100644 index 0000000..47b61c2 --- /dev/null +++ b/src/java2021spring/Main.java @@ -0,0 +1,11 @@ +package java2021spring; + +import java2021spring.Calculator; + +public class Main { + public static void main (String args[]) { + Calculator win=new Calculator(); + win.setTitle("计算器"); + win.setSize(500, 430); + } +} -- Gitee From 2b21677c64c8f07c384cd3dd6dd3bcad92161868 Mon Sep 17 00:00:00 2001 From: lululu Date: Thu, 10 Jun 2021 14:58:38 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E5=A4=A7=E8=87=B4=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2021spring/Calculator.java | 123 ++++++++++++++++++++++++++--- src/java2021spring/Main.java | 2 +- 2 files changed, 113 insertions(+), 12 deletions(-) diff --git a/src/java2021spring/Calculator.java b/src/java2021spring/Calculator.java index fd4b6db..66665da 100644 --- a/src/java2021spring/Calculator.java +++ b/src/java2021spring/Calculator.java @@ -10,7 +10,7 @@ public class Calculator extends JFrame { private Double sum; private Integer t; JPanel p1 = new JPanel(); - JPanel p2 = new JPanel(new GridLayout(5, 4, 3, 3 )); + JPanel p2 = new JPanel(new GridLayout(7, 4, 3, 3 )); JTextField inputText; JTextArea textShow; JButton button1=new JButton("1"); @@ -33,6 +33,14 @@ public class Calculator extends JFrame { JButton buttondelete=new JButton("←"); JButton buttonpoint=new JButton("."); JButton buttonx=new JButton("1/x"); + JButton buttonmc=new JButton("MC"); + JButton buttonmr=new JButton("MR"); + JButton buttonm=new JButton("M+"); + JButton buttonms=new JButton("MS"); + JButton buttonsin=new JButton("sin"); + JButton buttoncos=new JButton("cos"); + JButton buttonsqrt=new JButton("sqrt"); + JButton buttonhere=new JButton("HERE"); public Calculator(){ init(); menu(); @@ -42,11 +50,11 @@ public class Calculator extends JFrame { } void init() { inputText=new JTextField(); - Dimension mid=new Dimension(480,70); + Dimension mid=new Dimension(498,70); inputText.setPreferredSize(mid); textShow=new JTextArea(1,30); Font a=new Font("dialog", 1, 31); - inputText.setFont(a); + inputText.setFont(new Font("dialog",1,23)); buttonclear.setFont(a); buttonpoint.setFont(a); buttondelete.setFont(new Font("dialog",1,23)); @@ -56,7 +64,21 @@ public class Calculator extends JFrame { buttonmult.setFont(a); buttonequal.setFont(a); buttonper.setFont(a); + buttonper.setForeground(Color.gray); + buttonmc.setFont(new Font("dialog",1,23)); + buttonmr.setFont(new Font("dialog",1,23)); + buttonms.setFont(new Font("dialog",1,23)); + buttonm.setFont(new Font("dialog",1,23)); buttonx.setFont(new Font("dialog",1,20)); + buttonx.setForeground(Color.gray); + buttoncos.setFont(new Font("dialog",1,23)); + buttoncos.setForeground(Color.gray); + buttonsqrt.setFont(new Font("dialog",1,23)); + buttonsqrt.setForeground(Color.gray); + buttonhere.setFont(new Font("dialog",1,23)); + buttonhere.setForeground(Color.gray); + buttonsin.setFont(new Font("dialog",1,23)); + buttonsin.setForeground(Color.gray); button1.setFont(a); button2.setFont(a); button3.setFont(a); @@ -70,6 +92,14 @@ public class Calculator extends JFrame { p1.add(inputText); this.add(p1, BorderLayout.NORTH); this.add(p2, BorderLayout.CENTER); + p2.add(buttonms); + p2.add(buttonmr); + p2.add(buttonmc); + p2.add(buttonm); + p2.add(buttonsin); + p2.add(buttoncos); + p2.add(buttonsqrt); + p2.add(buttonx); p2.add(buttonclear); p2.add(buttonper); p2.add(buttonpoint); @@ -86,9 +116,10 @@ public class Calculator extends JFrame { p2.add(button8); p2.add(button9); p2.add(buttondivid); - p2.add(buttonequal); + p2.add(buttonhere); p2.add(button0); - p2.add(buttonx); + p2.add(buttonequal); + p2.add(buttonmult); } void menu() { @@ -96,8 +127,17 @@ public class Calculator extends JFrame { JMenu menu1=new JMenu("菜单"); JMenu subMenu=new JMenu("帮助"); menu1.add(subMenu); - subMenu.add(new JMenuItem("编者太菜了,功能正在开发中")); - subMenu.add(new JMenuItem("将就着看吧")); + subMenu.add(new JMenuItem("作者太菜了,功能正在开发中")); + subMenu.add(new JMenuItem("将就着看看吧")); + JMenuItem itemx=new JMenuItem("HERE键用法"); + menu1.add(itemx); + itemx.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + // TODO 自动生成的方法存根 + JOptionPane.showMessageDialog(null,"在需要用到灰色字体按键例如“%”或“sin”时,先输入需要计算的数字后点击所需按键后再点击HERE按键,最后点击等号输出结果","HERE用法",JOptionPane.PLAIN_MESSAGE); + } + }); menubar.add(menu1); setJMenuBar(menubar); } @@ -152,6 +192,11 @@ public class Calculator extends JFrame { sBuilder.append("9"); inputText.setText(sBuilder.toString()); }}); + buttonhere.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + sBuilder.append("9"); + inputText.setText(""); + }}); buttonpoint.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { sBuilder.append("."); @@ -177,6 +222,12 @@ public class Calculator extends JFrame { t = 0; } }); + buttonmc.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + sBuilder=new StringBuilder(); + inputText.setText(""); + }}); + try { buttonminus.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { b = Double.parseDouble(sBuilder.toString()); @@ -205,7 +256,7 @@ public class Calculator extends JFrame { public void actionPerformed(ActionEvent e) { b = Double.parseDouble(sBuilder.toString()); sBuilder = new StringBuilder(); - inputText.setText("%"); + inputText.setText(""); t = 4; } }); @@ -217,6 +268,30 @@ public class Calculator extends JFrame { t = 5; } }); + buttonsin.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + b = Double.parseDouble(sBuilder.toString()); + sBuilder = new StringBuilder(); + inputText.setText(""); + t = 6; + } + }); + buttoncos.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + b = Double.parseDouble(sBuilder.toString()); + sBuilder = new StringBuilder(); + inputText.setText(""); + t = 7; + } + }); + buttonsqrt.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + b = Double.parseDouble(sBuilder.toString()); + sBuilder = new StringBuilder(); + inputText.setText(""); + t = 8; + } + }); buttonequal.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (!"".equals(sBuilder.toString()) && (!(b == 0.0))) { @@ -240,10 +315,15 @@ public class Calculator extends JFrame { sBuilder.append(sum); } else if (t == 3) { - sum=b / c; + if(c==0) { + inputText.setText("警告!除数不能等于0!"); + } + else { + sum=b / c; inputText.setText(sum.toString()); sBuilder = new StringBuilder(); sBuilder.append(sum); + } } else if(t == 4) { sum=b/100; @@ -257,14 +337,35 @@ public class Calculator extends JFrame { sBuilder = new StringBuilder(); sBuilder.append(sum); } + else if(t == 6) { + sum=Math.sin(b); + inputText.setText(sum.toString()); + sBuilder = new StringBuilder(); + sBuilder.append(sum); + } + else if(t == 7) { + sum=Math.cos(b); + inputText.setText(sum.toString()); + sBuilder = new StringBuilder(); + sBuilder.append(sum); + } + else if(t == 8) { + sum=Math.sqrt(b); + inputText.setText(sum.toString()); + sBuilder = new StringBuilder(); + sBuilder.append(sum); + } else { inputText.setText(sBuilder.toString()); } - } } }); - + } + catch(Exception e) { + sBuilder = new StringBuilder(); + inputText.setText("error"); + } } } diff --git a/src/java2021spring/Main.java b/src/java2021spring/Main.java index 47b61c2..4e89b3f 100644 --- a/src/java2021spring/Main.java +++ b/src/java2021spring/Main.java @@ -6,6 +6,6 @@ public class Main { public static void main (String args[]) { Calculator win=new Calculator(); win.setTitle("计算器"); - win.setSize(500, 430); + win.setSize(520, 570); } } -- Gitee From 8bd76b32de514eb86366f8cc09037a30a7eca8f3 Mon Sep 17 00:00:00 2001 From: lululu Date: Thu, 10 Jun 2021 15:00:25 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=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/java2021spring/Calculator.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/java2021spring/Calculator.java b/src/java2021spring/Calculator.java index 66665da..c19676a 100644 --- a/src/java2021spring/Calculator.java +++ b/src/java2021spring/Calculator.java @@ -128,7 +128,7 @@ public class Calculator extends JFrame { JMenu subMenu=new JMenu("帮助"); menu1.add(subMenu); subMenu.add(new JMenuItem("作者太菜了,功能正在开发中")); - subMenu.add(new JMenuItem("将就着看看吧")); + subMenu.add(new JMenuItem("那就将就着看看吧")); JMenuItem itemx=new JMenuItem("HERE键用法"); menu1.add(itemx); itemx.addActionListener(new ActionListener() { -- Gitee From 79ca3d927cb8858b048d3039af0861f0ef30c15a Mon Sep 17 00:00:00 2001 From: lululu Date: Thu, 10 Jun 2021 17:54:36 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E6=9C=80=E7=BB=88=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2021spring/Calculator.java | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/java2021spring/Calculator.java b/src/java2021spring/Calculator.java index c19676a..3e12b8b 100644 --- a/src/java2021spring/Calculator.java +++ b/src/java2021spring/Calculator.java @@ -119,7 +119,6 @@ public class Calculator extends JFrame { p2.add(buttonhere); p2.add(button0); p2.add(buttonequal); - p2.add(buttonmult); } void menu() { @@ -214,6 +213,11 @@ public class Calculator extends JFrame { inputText.setText(sBuilder.toString()); } }}); + buttonmc.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + sBuilder=new StringBuilder(); + inputText.setText(""); + }}); buttonadd.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { b = Double.parseDouble(sBuilder.toString()); @@ -222,11 +226,6 @@ public class Calculator extends JFrame { t = 0; } }); - buttonmc.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - sBuilder=new StringBuilder(); - inputText.setText(""); - }}); try { buttonminus.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { -- Gitee