From 908814da833f6baf0a444a94bab6d6763542813e Mon Sep 17 00:00:00 2001 From: huangcuiqiong <2257918546@qq.com> Date: Fri, 3 Jun 2022 19:11:07 +0800 Subject: [PATCH 1/7] =?UTF-8?q?=E5=AE=8C=E6=88=90=E4=BA=86=E8=AE=A1?= =?UTF-8?q?=E7=AE=97=E5=99=A8=E7=9A=84=E5=B8=83=E5=B1=80=EF=BC=8C=E7=BE=8E?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/Calculator.java | 71 ++++++++++++++++++++++++++++++ src/java2022spring/MainClass.java | 8 ++++ src/java2022spring/calculate.java | 5 +++ 3 files changed, 84 insertions(+) create mode 100644 src/java2022spring/Calculator.java create mode 100644 src/java2022spring/MainClass.java create mode 100644 src/java2022spring/calculate.java diff --git a/src/java2022spring/Calculator.java b/src/java2022spring/Calculator.java new file mode 100644 index 0000000..8c606c8 --- /dev/null +++ b/src/java2022spring/Calculator.java @@ -0,0 +1,71 @@ +package java2022spring; +import javax.swing.*; +import javax.swing.border.EmptyBorder; + +import java.awt.*; +public class Calculator extends JFrame { + private JPanel contentPane; + private JTextField textField; + public Calculator() { + init(); + setVisible(true); + setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + } + void init() { + setLayout(new BorderLayout(0,0)); + setBorder(new EmptyBorder(4,4,4,4)); + contentPane=new JPanel();//创建内容面版 + setContentPane(contentPane); + Font font=new Font("宋体",Font.BOLD,22); + JPanel panel1=new JPanel();//用于保存文本框 + add(panel1,BorderLayout.NORTH); + textField=new JTextField(); + panel1.add(textField); + textField.setColumns(20); + contentPane.setBackground(Color.white); + JPanel panel2=new JPanel();//用于保存按钮 + contentPane.add(panel2,BorderLayout.CENTER); + panel2.setLayout(new GridLayout(5,4)); + JButton button01=new JButton("C");//清空 + panel2.add(button01); + JButton button02=new JButton("CE");//清除之前输入的一个数据 + panel2.add(button02); + JButton button03=new JButton("%");//取余 + panel2.add(button03); + JButton button04=new JButton("/"); + panel2.add(button04); + JButton button05=new JButton("1"); + panel2.add(button05); + JButton button06=new JButton("2"); + panel2.add(button06); + JButton button07=new JButton("3"); + panel2.add(button07); + JButton button08=new JButton("*"); + panel2.add(button08); + JButton button09=new JButton("4"); + panel2.add(button09); + JButton button10=new JButton("5"); + panel2.add(button10); + JButton button11=new JButton("6"); + panel2.add(button11); + JButton button12=new JButton("-"); + panel2.add(button12); + JButton button13=new JButton("7"); + panel2.add(button13); + JButton button14=new JButton("8"); + panel2.add(button14); + JButton button15=new JButton("9"); + panel2.add(button15); + JButton button16=new JButton("+"); + panel2.add(button16); + JButton button17=new JButton("e"); + panel2.add(button17); + JButton button18=new JButton("0"); + panel2.add(button18); + JButton button19=new JButton("."); + panel2.add(button19); + JButton button20=new JButton("."); //新建按钮 + panel2.add(button20); //应用按钮 + } + private void setBorder(EmptyBorder emptyBorder) {} +} \ No newline at end of file diff --git a/src/java2022spring/MainClass.java b/src/java2022spring/MainClass.java new file mode 100644 index 0000000..89b1562 --- /dev/null +++ b/src/java2022spring/MainClass.java @@ -0,0 +1,8 @@ +package java2022spring; +public class MainClass { + public static void main(String args[]) { + Calculator win=new Calculator(); + win.setBounds(100,100,250,230); + win.setTitle("计算器"); + } +} diff --git a/src/java2022spring/calculate.java b/src/java2022spring/calculate.java new file mode 100644 index 0000000..5536a4d --- /dev/null +++ b/src/java2022spring/calculate.java @@ -0,0 +1,5 @@ +package java2022spring; + +public class calculate { + +} -- Gitee From 0c319abb2469fac94c56c9398002f05e8b41af97 Mon Sep 17 00:00:00 2001 From: huangcuiqiong <2257918546@qq.com> Date: Fri, 3 Jun 2022 19:16:00 +0800 Subject: [PATCH 2/7] =?UTF-8?q?=E8=AE=A1=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/calculate.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/java2022spring/calculate.java b/src/java2022spring/calculate.java index 5536a4d..f567377 100644 --- a/src/java2022spring/calculate.java +++ b/src/java2022spring/calculate.java @@ -1,5 +1,5 @@ package java2022spring; - +import java.util.*; public class calculate { - + } -- Gitee From 54bbb09197cac101132f8733a7187e4ccf68f6ab Mon Sep 17 00:00:00 2001 From: huangcuiqiong <2257918546@qq.com> Date: Sat, 4 Jun 2022 16:03:19 +0800 Subject: [PATCH 3/7] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=80=E9=83=A8?= =?UTF-8?q?=E5=88=86=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/Calculator.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/java2022spring/Calculator.java b/src/java2022spring/Calculator.java index 8c606c8..18dfdf6 100644 --- a/src/java2022spring/Calculator.java +++ b/src/java2022spring/Calculator.java @@ -22,7 +22,7 @@ public class Calculator extends JFrame { textField=new JTextField(); panel1.add(textField); textField.setColumns(20); - contentPane.setBackground(Color.white); + contentPane.setBackground(Color.white);//设置窗口背景色 JPanel panel2=new JPanel();//用于保存按钮 contentPane.add(panel2,BorderLayout.CENTER); panel2.setLayout(new GridLayout(5,4)); -- Gitee From 49bb47b895b4e117e1505f41bbb7acd8336366cf Mon Sep 17 00:00:00 2001 From: huangcuiqiong <2257918546@qq.com> Date: Sat, 4 Jun 2022 23:51:12 +0800 Subject: [PATCH 4/7] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86=E6=8C=89?= =?UTF-8?q?=E9=92=AE=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/Calculator.java | 82 +++++++++++++++--------------- src/java2022spring/MainClass.java | 2 +- src/java2022spring/Test.java | 3 +- 3 files changed, 43 insertions(+), 44 deletions(-) diff --git a/src/java2022spring/Calculator.java b/src/java2022spring/Calculator.java index 18dfdf6..26b2d19 100644 --- a/src/java2022spring/Calculator.java +++ b/src/java2022spring/Calculator.java @@ -1,7 +1,6 @@ package java2022spring; import javax.swing.*; import javax.swing.border.EmptyBorder; - import java.awt.*; public class Calculator extends JFrame { private JPanel contentPane; @@ -26,46 +25,47 @@ public class Calculator extends JFrame { JPanel panel2=new JPanel();//用于保存按钮 contentPane.add(panel2,BorderLayout.CENTER); panel2.setLayout(new GridLayout(5,4)); - JButton button01=new JButton("C");//清空 - panel2.add(button01); - JButton button02=new JButton("CE");//清除之前输入的一个数据 - panel2.add(button02); - JButton button03=new JButton("%");//取余 - panel2.add(button03); - JButton button04=new JButton("/"); - panel2.add(button04); - JButton button05=new JButton("1"); - panel2.add(button05); - JButton button06=new JButton("2"); - panel2.add(button06); - JButton button07=new JButton("3"); - panel2.add(button07); - JButton button08=new JButton("*"); - panel2.add(button08); - JButton button09=new JButton("4"); - panel2.add(button09); - JButton button10=new JButton("5"); - panel2.add(button10); - JButton button11=new JButton("6"); - panel2.add(button11); - JButton button12=new JButton("-"); - panel2.add(button12); - JButton button13=new JButton("7"); - panel2.add(button13); - JButton button14=new JButton("8"); - panel2.add(button14); - JButton button15=new JButton("9"); - panel2.add(button15); - JButton button16=new JButton("+"); - panel2.add(button16); - JButton button17=new JButton("e"); - panel2.add(button17); - JButton button18=new JButton("0"); - panel2.add(button18); - JButton button19=new JButton("."); - panel2.add(button19); - JButton button20=new JButton("."); //新建按钮 - panel2.add(button20); //应用按钮 + JButton button[]=new JButton[20]; + button[0]=new JButton("C"); //清空 + panel2.add(button[0]); + button[1]=new JButton("CE");//清除之前输入的一个数据 + panel2.add(button[1]); + button[2]=new JButton("%"); //取余 + panel2.add(button[2]); + button[3]=new JButton("/"); + panel2.add(button[3]); + button[4]=new JButton("7"); + panel2.add(button[4]); + button[5]=new JButton("8"); + panel2.add(button[5]); + button[6]=new JButton("9"); + panel2.add(button[6]); + button[7]=new JButton("*"); //乘号 + panel2.add(button[7]); + button[8]=new JButton("4"); + panel2.add(button[8]); + button[9]=new JButton("5"); + panel2.add(button[9]); + button[10]=new JButton("6"); + panel2.add(button[10]); + button[11]=new JButton("—"); + panel2.add(button[11]); + button[12]=new JButton("1"); + panel2.add(button[12]); + button[13]=new JButton("2"); + panel2.add(button[13]); + button[14]=new JButton("3"); + panel2.add(button[14]); + button[15]=new JButton("+"); + panel2.add(button[15]); + button[16]=new JButton("e"); //乘方 + panel2.add(button[16]); + button[17]=new JButton("0"); + panel2.add(button[17]); + button[18]=new JButton("."); + panel2.add(button[18]); + button[19]=new JButton("="); + panel2.add(button[19]); } private void setBorder(EmptyBorder emptyBorder) {} } \ No newline at end of file diff --git a/src/java2022spring/MainClass.java b/src/java2022spring/MainClass.java index 89b1562..d0509c4 100644 --- a/src/java2022spring/MainClass.java +++ b/src/java2022spring/MainClass.java @@ -5,4 +5,4 @@ public class MainClass { win.setBounds(100,100,250,230); win.setTitle("计算器"); } -} +} \ No newline at end of file diff --git a/src/java2022spring/Test.java b/src/java2022spring/Test.java index 24deb29..21b4165 100644 --- a/src/java2022spring/Test.java +++ b/src/java2022spring/Test.java @@ -1,7 +1,6 @@ package java2022spring; - public class Test { public static void main(String[] args) { System.out.println("Hello world!"); } -} +} \ No newline at end of file -- Gitee From 60c4815d022f2c05628dcf2116018afdddba763e Mon Sep 17 00:00:00 2001 From: huangcuiqiong <2257918546@qq.com> Date: Sun, 5 Jun 2022 18:48:41 +0800 Subject: [PATCH 5/7] =?UTF-8?q?=E9=87=8D=E6=96=B0=E5=86=99=E4=BA=86?= =?UTF-8?q?=E7=9B=91=E8=A7=86=E5=99=A8=E7=9A=84=E4=BB=A3=E7=A0=81=EF=BC=8C?= =?UTF-8?q?=E6=B2=A1=E6=9C=89=E6=8A=A5=E9=94=99=EF=BC=8C=E4=BD=86=E6=98=AF?= =?UTF-8?q?=E8=BF=90=E8=A1=8C=E4=B8=8D=E5=87=BA=E6=9D=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/Calculator.java | 115 +++++++++------ src/java2022spring/PoliceListener.java | 188 +++++++++++++++++++++++++ src/java2022spring/Test.java | 6 - 3 files changed, 259 insertions(+), 50 deletions(-) create mode 100644 src/java2022spring/PoliceListener.java delete mode 100644 src/java2022spring/Test.java diff --git a/src/java2022spring/Calculator.java b/src/java2022spring/Calculator.java index 26b2d19..34ae9f1 100644 --- a/src/java2022spring/Calculator.java +++ b/src/java2022spring/Calculator.java @@ -1,8 +1,13 @@ package java2022spring; import javax.swing.*; -import javax.swing.border.EmptyBorder; import java.awt.*; -public class Calculator extends JFrame { +import java.awt.event.ActionListener; +import javax.swing.border.EmptyBorder; +public class Calculator extends JFrame{ + public JTextField inputText; + public JTextArea textShow; + public JButton button; + ActionListener listener; private JPanel contentPane; private JTextField textField; public Calculator() { @@ -25,47 +30,69 @@ public class Calculator extends JFrame { JPanel panel2=new JPanel();//用于保存按钮 contentPane.add(panel2,BorderLayout.CENTER); panel2.setLayout(new GridLayout(5,4)); - JButton button[]=new JButton[20]; - button[0]=new JButton("C"); //清空 - panel2.add(button[0]); - button[1]=new JButton("CE");//清除之前输入的一个数据 - panel2.add(button[1]); - button[2]=new JButton("%"); //取余 - panel2.add(button[2]); - button[3]=new JButton("/"); - panel2.add(button[3]); - button[4]=new JButton("7"); - panel2.add(button[4]); - button[5]=new JButton("8"); - panel2.add(button[5]); - button[6]=new JButton("9"); - panel2.add(button[6]); - button[7]=new JButton("*"); //乘号 - panel2.add(button[7]); - button[8]=new JButton("4"); - panel2.add(button[8]); - button[9]=new JButton("5"); - panel2.add(button[9]); - button[10]=new JButton("6"); - panel2.add(button[10]); - button[11]=new JButton("—"); - panel2.add(button[11]); - button[12]=new JButton("1"); - panel2.add(button[12]); - button[13]=new JButton("2"); - panel2.add(button[13]); - button[14]=new JButton("3"); - panel2.add(button[14]); - button[15]=new JButton("+"); - panel2.add(button[15]); - button[16]=new JButton("e"); //乘方 - panel2.add(button[16]); - button[17]=new JButton("0"); - panel2.add(button[17]); - button[18]=new JButton("."); - panel2.add(button[18]); - button[19]=new JButton("="); - panel2.add(button[19]); + JButton button01=new JButton("C"); //清空 + panel2.add(button01); + button01.addActionListener(listener); + JButton button02=new JButton("CE");//清除之前输入的一个数据 + panel2.add(button02); + button02.addActionListener(listener); + JButton button03=new JButton("%"); //取余 + panel2.add(button03); + button03.addActionListener(listener); + JButton button04=new JButton("/"); + panel2.add(button04); + button04.addActionListener(listener); + JButton button05=new JButton("7"); + panel2.add(button05); + button05.addActionListener(listener); + JButton button06=new JButton("8"); + panel2.add(button06); + button06.addActionListener(listener); + JButton button07=new JButton("9"); + panel2.add(button07); + button07.addActionListener(listener); + JButton button08=new JButton("*"); //乘号 + panel2.add(button08); + button08.addActionListener(listener); + JButton button09=new JButton("4"); + panel2.add(button09); + button09.addActionListener(listener); + JButton button10=new JButton("5"); + panel2.add(button10); + button10.addActionListener(listener); + JButton button11=new JButton("6"); + panel2.add(button11); + button11.addActionListener(listener); + JButton button12=new JButton("—"); + panel2.add(button12); + button12.addActionListener(listener); + JButton button13=new JButton("1"); + panel2.add(button13); + button13.addActionListener(listener); + JButton button14=new JButton("2"); + panel2.add(button14); + button14.addActionListener(listener); + JButton button15=new JButton("3"); + panel2.add(button15); + button15.addActionListener(listener); + JButton button16=new JButton("+"); + panel2.add(button16); + button16.addActionListener(listener); + JButton button17=new JButton("e"); //乘方 + panel2.add(button17); + button17.addActionListener(listener); + JButton button18=new JButton("0"); + panel2.add(button18); + button18.addActionListener(listener); + JButton button19=new JButton("."); + panel2.add(button19); + button19.addActionListener(listener); + JButton button20=new JButton("="); + panel2.add(button20); + button20.addActionListener(listener); + listener=new PoliceListener(); + inputText.addActionListener(listener); + add(inputText); } - private void setBorder(EmptyBorder emptyBorder) {} + private void setBorder(EmptyBorder emptyBorder) {} } \ No newline at end of file diff --git a/src/java2022spring/PoliceListener.java b/src/java2022spring/PoliceListener.java new file mode 100644 index 0000000..0aa87a2 --- /dev/null +++ b/src/java2022spring/PoliceListener.java @@ -0,0 +1,188 @@ +package java2022spring; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import javax.swing.JTextArea; +public class PoliceListener implements ActionListener { + Calculator view; + private StringBuilder sBuilder = new StringBuilder(); //利用StringBuilder类来显示,以及区分两个操作数 + JTextArea text=new JTextArea(); + double a,b; + Double sum; + int i; + public void setView(Calculator view) { + this.view=view; + } + public void actionPerformed(ActionEvent e) //事件处理 + { + // TODO Auto-generated method stub + String lab=e.getActionCommand(); //得到当前的按钮字符,后面进行匹配 + + if(lab.equals("0")) //处理按钮 0~9 + { + sBuilder.append("0"); //利用StringBuilder类的对象调用方法,将数据存起来 + text.setText(sBuilder.toString()); //显示之前所有输入的数据 + } + else if(lab.equals("1")) + { + sBuilder.append("1"); //利用StringBuilder类的对象调用方法,将数据存起来 + text.setText(sBuilder.toString()); //显示之前所有输入的数据 + } + else if(lab.equals("2")) + { + sBuilder.append("2"); //利用StringBuilder类的对象调用方法,将数据存起来 + text.setText(sBuilder.toString()); //显示之前所有输入的数据 + } + else if(lab.equals("3")) + { + sBuilder.append("3"); //利用StringBuilder类的对象调用方法,将数据存起来 + text.setText(sBuilder.toString()); //显示之前所有输入的数据 + } + else if(lab.equals("4")) + { + sBuilder.append("4"); + text.setText(sBuilder.toString()); + } + else if(lab.equals("5")) + { + sBuilder.append("5"); + text.setText(sBuilder.toString()); + } + else if(lab.equals("6")) + { + sBuilder.append("6"); + text.setText(sBuilder.toString()); + } + else if(lab.equals("7")) + { + sBuilder.append("7"); + text.setText(sBuilder.toString()); + } + + else if(lab.equals("8")) + { + sBuilder.append("8"); + text.setText(sBuilder.toString()); + } + else if(lab.equals("9")) + { + sBuilder.append("9"); //利用StringBuilder类的对象调用方法,将数据存起来 + text.setText(sBuilder.toString()); //显示之前所有输入的数据 + } + + else if(lab.equals("CE")) //处理"CE"按钮事件 即清除当前的输入的数据 + { + sBuilder.deleteCharAt(sBuilder.length() - 1); //StringBuilder的实例化对象调用方法下标减1即可 + text.setText(sBuilder.toString()); + } + else if(lab.equals("C")) //处理"CE"按钮事件 即清除之前的输入所有的数据 + { + sBuilder = new StringBuilder(); //重新创建即可清除之前的输入所有的数据 + text.setText(sBuilder.toString()); + } + else if(lab.equals(".")) // 处理按钮 "." 事件 + { + sBuilder.append("."); //利用StringBuilder类的对象调用方法,将数据存起来 + text.setText(sBuilder.toString()); //显示之前输入的数据 + } + + else if(lab.equals("+")) //处理+"按钮乘法 + { + a = Double.parseDouble(sBuilder.toString()); //将 运算符 之前的数据 作为第一个操作数 a + i=0; + sBuilder = new StringBuilder(); //将数组清空来存储第二个操作数 b + text.setText("+"); + } + else if(lab.equals("—")) //处理"—"按钮乘法 + { + a = Double.parseDouble(sBuilder.toString()); //将前面的输入的数 作为第一个操作数a + i=1; //标记运算类型 即"÷"之前的数据即将作为因数 + sBuilder = new StringBuilder(); //将数组清空来存储第二个操作数 b + text.setText("—"); + } + else if(lab.equals("x")) //处理"x"按钮乘法 + { + a = Double.parseDouble(sBuilder.toString()); //将前面的输入的数 作为第一个操作数a + i=2; //标记运算类型 即"÷"之前的数据即将作为因数 + sBuilder = new StringBuilder(); //将数组清空来存储第二个操作数 b + text.setText("x"); + } + else if(lab.equals("÷")) //处理"÷"按钮事件 + { + i=3; //标记运算类型 即"÷"之前的数据即将作为被除数 + a = Double.parseDouble(sBuilder.toString()); //将除法的输入的数 作为第一个操作数a + sBuilder = new StringBuilder(); //将数组清空来存储第二个操作数 b + text.setText("÷"); + } + + else if(lab.equals("%")) //处理取余运算 + { + a = Double.parseDouble(sBuilder.toString()); //将前面的输入的数 作为第一个操作数a + i=4; //标记取余运算 + sBuilder = new StringBuilder(); //将数组清空来存储第二个操作数 b + text.setText("%"); + } + else if(lab.equals("e")) //处理取余运算 + { + a = Double.parseDouble(sBuilder.toString()); //将前面的输入的数 作为第一个操作数a + i=5; //标记取余运算 + sBuilder = new StringBuilder(); //将数组清空来存储第二个操作数 b + text.setText("e"); + } + else if(lab.equals("=")) + { + b = Double.parseDouble(sBuilder.toString()); //一遇到"=",我们就能得到第二个操作数b + if (i == 0) //加法 a+b + { + sum=a+b; + text.setText(sum.toString()); //输出第二个操作数已经输入的数据 + sBuilder = new StringBuilder(); //清空数据,为后面的操作数留空间 + sBuilder.append(sum); + } + else if (i == 1) //加法 a-b + { + sum = a - b; + text.setText(sum.toString()); + sBuilder = new StringBuilder(); //清空数据,为后面的操作数留空间 + sBuilder.append(sum); + } + else if (i == 2) //乘法 a*b + { + sum = a * b; + text.setText(sum.toString()); + sBuilder = new StringBuilder(); + sBuilder.append(sum); + } + else if (i == 3) //除法 a÷b + { + sum = a / b; + text.setText(sum.toString()); + sBuilder = new StringBuilder(); + sBuilder.append(sum); + } + else if (i == 4) // 取余 a%b + { + sum=a % b; + int m=(int)a; + int n=(int)b; + sum=(double)m % n; + text.setText(sum.toString()); + sBuilder = new StringBuilder(); + sBuilder.append(sum); + } + else if (i == 5) // 次幂 a是底数 b是指数 + { + sum=1.0; + if(b==0) + sum=1.0; + else + for(int i=1;i<=b;i++) + sum=sum*a; + text.setText(sum.toString()); + sBuilder = new StringBuilder(); + sBuilder.append(sum); + } + else + text.setText(sBuilder.toString()); + } + } +} diff --git a/src/java2022spring/Test.java b/src/java2022spring/Test.java deleted file mode 100644 index 21b4165..0000000 --- a/src/java2022spring/Test.java +++ /dev/null @@ -1,6 +0,0 @@ -package java2022spring; -public class Test { - public static void main(String[] args) { - System.out.println("Hello world!"); - } -} \ No newline at end of file -- Gitee From bab68da290e68b7d1666464ab98209f804ac67e7 Mon Sep 17 00:00:00 2001 From: huangcuiqiong <2257918546@qq.com> Date: Wed, 8 Jun 2022 13:41:24 +0800 Subject: [PATCH 6/7] =?UTF-8?q?=E5=8F=8D=E5=A4=8D=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E4=BA=86=E7=9B=91=E8=A7=86=E5=99=A8=E4=BB=A3=E7=A0=81=EF=BC=8C?= =?UTF-8?q?=E8=B0=83=E8=AF=95=E4=BA=86=E5=BE=88=E5=A4=9A=E6=AC=A1=EF=BC=8C?= =?UTF-8?q?=E4=BD=86=E4=BB=8D=E6=9C=89=E7=BC=BA=E9=99=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/Calculator.java | 300 +++++++++++++++++++++-------- src/java2022spring/MainClass.java | 12 +- src/java2022spring/Test.java | 6 + 3 files changed, 231 insertions(+), 87 deletions(-) create mode 100644 src/java2022spring/Test.java diff --git a/src/java2022spring/Calculator.java b/src/java2022spring/Calculator.java index 34ae9f1..a310092 100644 --- a/src/java2022spring/Calculator.java +++ b/src/java2022spring/Calculator.java @@ -1,23 +1,21 @@ package java2022spring; import javax.swing.*; -import java.awt.*; +import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -import javax.swing.border.EmptyBorder; -public class Calculator extends JFrame{ - public JTextField inputText; - public JTextArea textShow; - public JButton button; - ActionListener listener; +import java.awt.*; +class Calculator extends JFrame implements ActionListener{ + /** + * + */ + private static final long serialVersionUID = 7959852004624075564L; + private StringBuilder sBuilder = new StringBuilder(); //StringBuilder类,字符缓冲区 private JPanel contentPane; private JTextField textField; - public Calculator() { - init(); - setVisible(true); - setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - } - void init() { - setLayout(new BorderLayout(0,0)); - setBorder(new EmptyBorder(4,4,4,4)); + double a,b; + Double sum; + int i; + public Calculator() + { contentPane=new JPanel();//创建内容面版 setContentPane(contentPane); Font font=new Font("宋体",Font.BOLD,22); @@ -26,73 +24,213 @@ public class Calculator extends JFrame{ textField=new JTextField(); panel1.add(textField); textField.setColumns(20); - contentPane.setBackground(Color.white);//设置窗口背景色 + contentPane.setBackground(Color.white);//设置窗口背景色白色 JPanel panel2=new JPanel();//用于保存按钮 contentPane.add(panel2,BorderLayout.CENTER); - panel2.setLayout(new GridLayout(5,4)); - JButton button01=new JButton("C"); //清空 - panel2.add(button01); - button01.addActionListener(listener); - JButton button02=new JButton("CE");//清除之前输入的一个数据 - panel2.add(button02); - button02.addActionListener(listener); - JButton button03=new JButton("%"); //取余 - panel2.add(button03); - button03.addActionListener(listener); - JButton button04=new JButton("/"); - panel2.add(button04); - button04.addActionListener(listener); - JButton button05=new JButton("7"); - panel2.add(button05); - button05.addActionListener(listener); - JButton button06=new JButton("8"); - panel2.add(button06); - button06.addActionListener(listener); - JButton button07=new JButton("9"); - panel2.add(button07); - button07.addActionListener(listener); - JButton button08=new JButton("*"); //乘号 - panel2.add(button08); - button08.addActionListener(listener); - JButton button09=new JButton("4"); - panel2.add(button09); - button09.addActionListener(listener); - JButton button10=new JButton("5"); - panel2.add(button10); - button10.addActionListener(listener); - JButton button11=new JButton("6"); - panel2.add(button11); - button11.addActionListener(listener); - JButton button12=new JButton("—"); - panel2.add(button12); - button12.addActionListener(listener); - JButton button13=new JButton("1"); - panel2.add(button13); - button13.addActionListener(listener); - JButton button14=new JButton("2"); - panel2.add(button14); - button14.addActionListener(listener); - JButton button15=new JButton("3"); - panel2.add(button15); - button15.addActionListener(listener); - JButton button16=new JButton("+"); - panel2.add(button16); - button16.addActionListener(listener); - JButton button17=new JButton("e"); //乘方 - panel2.add(button17); - button17.addActionListener(listener); - JButton button18=new JButton("0"); - panel2.add(button18); - button18.addActionListener(listener); - JButton button19=new JButton("."); - panel2.add(button19); - button19.addActionListener(listener); - JButton button20=new JButton("="); - panel2.add(button20); - button20.addActionListener(listener); - listener=new PoliceListener(); - inputText.addActionListener(listener); - add(inputText); + panel2.setLayout(new FlowLayout()); + panel2.setLayout(new GridLayout(5,4)); //添加按钮 + JButton button[]=new JButton[20]; + button[0]=new JButton("C"); //清空 + button[1]=new JButton("CE"); //清除之前输入的一个数据 + button[2]=new JButton("%"); //取余 + button[3]=new JButton("/"); //除法 + button[4]=new JButton("7"); + button[5]=new JButton("8"); + button[6]=new JButton("9"); + button[7]=new JButton("*"); //乘号 + button[8]=new JButton("4"); + button[9]=new JButton("5"); + button[10]=new JButton("6"); + button[11]=new JButton("—"); + button[12]=new JButton("1"); + button[13]=new JButton("2"); + button[14]=new JButton("3"); + button[15]=new JButton("+"); + button[16]=new JButton("e"); //乘方 + button[17]=new JButton("0"); + button[18]=new JButton("."); + button[19]=new JButton("="); + for(int i=0;i Date: Sat, 11 Jun 2022 12:01:08 +0000 Subject: [PATCH 7/7] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=20src/?= =?UTF-8?q?java2022spring/PoliceListener.java?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2022spring/PoliceListener.java | 188 ------------------------- 1 file changed, 188 deletions(-) delete mode 100644 src/java2022spring/PoliceListener.java diff --git a/src/java2022spring/PoliceListener.java b/src/java2022spring/PoliceListener.java deleted file mode 100644 index 0aa87a2..0000000 --- a/src/java2022spring/PoliceListener.java +++ /dev/null @@ -1,188 +0,0 @@ -package java2022spring; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import javax.swing.JTextArea; -public class PoliceListener implements ActionListener { - Calculator view; - private StringBuilder sBuilder = new StringBuilder(); //利用StringBuilder类来显示,以及区分两个操作数 - JTextArea text=new JTextArea(); - double a,b; - Double sum; - int i; - public void setView(Calculator view) { - this.view=view; - } - public void actionPerformed(ActionEvent e) //事件处理 - { - // TODO Auto-generated method stub - String lab=e.getActionCommand(); //得到当前的按钮字符,后面进行匹配 - - if(lab.equals("0")) //处理按钮 0~9 - { - sBuilder.append("0"); //利用StringBuilder类的对象调用方法,将数据存起来 - text.setText(sBuilder.toString()); //显示之前所有输入的数据 - } - else if(lab.equals("1")) - { - sBuilder.append("1"); //利用StringBuilder类的对象调用方法,将数据存起来 - text.setText(sBuilder.toString()); //显示之前所有输入的数据 - } - else if(lab.equals("2")) - { - sBuilder.append("2"); //利用StringBuilder类的对象调用方法,将数据存起来 - text.setText(sBuilder.toString()); //显示之前所有输入的数据 - } - else if(lab.equals("3")) - { - sBuilder.append("3"); //利用StringBuilder类的对象调用方法,将数据存起来 - text.setText(sBuilder.toString()); //显示之前所有输入的数据 - } - else if(lab.equals("4")) - { - sBuilder.append("4"); - text.setText(sBuilder.toString()); - } - else if(lab.equals("5")) - { - sBuilder.append("5"); - text.setText(sBuilder.toString()); - } - else if(lab.equals("6")) - { - sBuilder.append("6"); - text.setText(sBuilder.toString()); - } - else if(lab.equals("7")) - { - sBuilder.append("7"); - text.setText(sBuilder.toString()); - } - - else if(lab.equals("8")) - { - sBuilder.append("8"); - text.setText(sBuilder.toString()); - } - else if(lab.equals("9")) - { - sBuilder.append("9"); //利用StringBuilder类的对象调用方法,将数据存起来 - text.setText(sBuilder.toString()); //显示之前所有输入的数据 - } - - else if(lab.equals("CE")) //处理"CE"按钮事件 即清除当前的输入的数据 - { - sBuilder.deleteCharAt(sBuilder.length() - 1); //StringBuilder的实例化对象调用方法下标减1即可 - text.setText(sBuilder.toString()); - } - else if(lab.equals("C")) //处理"CE"按钮事件 即清除之前的输入所有的数据 - { - sBuilder = new StringBuilder(); //重新创建即可清除之前的输入所有的数据 - text.setText(sBuilder.toString()); - } - else if(lab.equals(".")) // 处理按钮 "." 事件 - { - sBuilder.append("."); //利用StringBuilder类的对象调用方法,将数据存起来 - text.setText(sBuilder.toString()); //显示之前输入的数据 - } - - else if(lab.equals("+")) //处理+"按钮乘法 - { - a = Double.parseDouble(sBuilder.toString()); //将 运算符 之前的数据 作为第一个操作数 a - i=0; - sBuilder = new StringBuilder(); //将数组清空来存储第二个操作数 b - text.setText("+"); - } - else if(lab.equals("—")) //处理"—"按钮乘法 - { - a = Double.parseDouble(sBuilder.toString()); //将前面的输入的数 作为第一个操作数a - i=1; //标记运算类型 即"÷"之前的数据即将作为因数 - sBuilder = new StringBuilder(); //将数组清空来存储第二个操作数 b - text.setText("—"); - } - else if(lab.equals("x")) //处理"x"按钮乘法 - { - a = Double.parseDouble(sBuilder.toString()); //将前面的输入的数 作为第一个操作数a - i=2; //标记运算类型 即"÷"之前的数据即将作为因数 - sBuilder = new StringBuilder(); //将数组清空来存储第二个操作数 b - text.setText("x"); - } - else if(lab.equals("÷")) //处理"÷"按钮事件 - { - i=3; //标记运算类型 即"÷"之前的数据即将作为被除数 - a = Double.parseDouble(sBuilder.toString()); //将除法的输入的数 作为第一个操作数a - sBuilder = new StringBuilder(); //将数组清空来存储第二个操作数 b - text.setText("÷"); - } - - else if(lab.equals("%")) //处理取余运算 - { - a = Double.parseDouble(sBuilder.toString()); //将前面的输入的数 作为第一个操作数a - i=4; //标记取余运算 - sBuilder = new StringBuilder(); //将数组清空来存储第二个操作数 b - text.setText("%"); - } - else if(lab.equals("e")) //处理取余运算 - { - a = Double.parseDouble(sBuilder.toString()); //将前面的输入的数 作为第一个操作数a - i=5; //标记取余运算 - sBuilder = new StringBuilder(); //将数组清空来存储第二个操作数 b - text.setText("e"); - } - else if(lab.equals("=")) - { - b = Double.parseDouble(sBuilder.toString()); //一遇到"=",我们就能得到第二个操作数b - if (i == 0) //加法 a+b - { - sum=a+b; - text.setText(sum.toString()); //输出第二个操作数已经输入的数据 - sBuilder = new StringBuilder(); //清空数据,为后面的操作数留空间 - sBuilder.append(sum); - } - else if (i == 1) //加法 a-b - { - sum = a - b; - text.setText(sum.toString()); - sBuilder = new StringBuilder(); //清空数据,为后面的操作数留空间 - sBuilder.append(sum); - } - else if (i == 2) //乘法 a*b - { - sum = a * b; - text.setText(sum.toString()); - sBuilder = new StringBuilder(); - sBuilder.append(sum); - } - else if (i == 3) //除法 a÷b - { - sum = a / b; - text.setText(sum.toString()); - sBuilder = new StringBuilder(); - sBuilder.append(sum); - } - else if (i == 4) // 取余 a%b - { - sum=a % b; - int m=(int)a; - int n=(int)b; - sum=(double)m % n; - text.setText(sum.toString()); - sBuilder = new StringBuilder(); - sBuilder.append(sum); - } - else if (i == 5) // 次幂 a是底数 b是指数 - { - sum=1.0; - if(b==0) - sum=1.0; - else - for(int i=1;i<=b;i++) - sum=sum*a; - text.setText(sum.toString()); - sBuilder = new StringBuilder(); - sBuilder.append(sum); - } - else - text.setText(sBuilder.toString()); - } - } -} -- Gitee