From 97ff91dcbaccec5d922fc140414c1c60e7b187c6 Mon Sep 17 00:00:00 2001 From: Raver Date: Thu, 10 Jun 2021 19:56:12 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9C=80=E6=96=B0=E4=B8=80=E6=AC=A1=E6=8F=90?= =?UTF-8?q?=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2020spring/Test.java | 343 ++++++++++++++++++++++++++++++++++- 1 file changed, 338 insertions(+), 5 deletions(-) diff --git a/src/java2020spring/Test.java b/src/java2020spring/Test.java index fc09c19..9e220b7 100644 --- a/src/java2020spring/Test.java +++ b/src/java2020spring/Test.java @@ -1,10 +1,343 @@ package java2020spring; -public class Test { + import javax.swing.*; + import java.awt.*; + import java.awt.event.ActionEvent; + import java.awt.event.ActionListener; + public class Test extends JFrame implements ActionListener { + private Container ct; + private JButton[] jbs; + private String[] str; + private JTextField jTextField; + //cal[0]用来存储第一次输入的数 + //cal[1]用来存储运算符(+,-,*,/,%) + //cal[2]用来存储第二次输入的数 + //cal[3]用来存储结果 + //cal[4]用来存储MS键所存储的数 + //cal[5]用来获取要存入的值(用来给cal[4]赋值) + private String[] cal = {"","","","","",""}; + private boolean _count = true; + private boolean _count1 = false; - public static void main(String[] args) { - System.out.println("Hello world!"); + public Test() { + super("计算器"); + jbs = new JButton[28]; + ct = this.getContentPane(); + this.setBounds(100, 100, 315, 400); + this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); + ct.setLayout(null); + //菜单栏 + JMenuBar jMenuBar = new JMenuBar(); + JMenu jm = new JMenu("查看(V)"); + JMenu jm1 = new JMenu("编辑(E)"); + JMenu jm2 = new JMenu("帮助(H)"); + jMenuBar.add(jm); + jMenuBar.add(jm1); + jMenuBar.add(jm2); + this.setJMenuBar(jMenuBar); + //输出框 + jTextField = new JTextField("0"); + jTextField.setFont(new Font("宋体", Font.BOLD, 25)); + jTextField.setEditable(false); + jTextField.setHorizontalAlignment(JTextField.RIGHT); + jTextField.setBounds(5, 5, 285, 65); + ct.add(jTextField); + //按键 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 + str = new String[]{"MC", "MR", "MS", "M+", "M-", "←", "CE", "C", "±", "√", "7", "8", "9", "/", "%", "4", "5", "6", "*", "1/x", "1", "2", "3", "-", "=", "0", ".", "+"}; + int k = 0; + for (int i = 75; i <= 195; i = i + 40) { + for (int init = 10; init <= 290; init = init + 57) { + JButton jButton = new JButton(str[k]); + jbs[k] = jButton; + jButton.setBounds(init, i, 52, 35); + ct.add(jButton); + k++; + System.out.println(k); + } + } + for (int i = 235; i < 265; i = i + 40) { + for (int j = 10; j <= 181; j = j + 57) { + JButton jButton = new JButton(str[k]); + jButton.setBounds(j, i, 52, 35); + ct.add(jButton); + jbs[k] = jButton; + k++; + System.out.println(k); + } + } + JButton jButton = new JButton(str[k]); + jbs[k] = jButton; + k++; + System.out.println(k); + jButton.setBounds(240, 235, 52, 75); + ct.add(jButton); + JButton jButton2 = new JButton(str[k]); + System.out.println(str[k]); + jButton2.setBounds(10, 275, 109, 35); + ct.add(jButton2); + jbs[k] = jButton2; + k++; + for (int i = 275; i < 310; i = i + 40) { + for (int j = 124; j <= 181; j = j + 57) { + JButton jButton1 = new JButton(str[k]); + jButton1.setBounds(j, i, 52, 35); + ct.add(jButton1); + jbs[k] = jButton1; + k++; + } + } + for (int i = 0; i < 28; i++) { + jbs[i].addActionListener(this); + } + this.setVisible(true); + } + + public static void main(String[] args) { + new Test(); + } + + + @Override + public void actionPerformed(ActionEvent actionEvent) { + if (actionEvent.getActionCommand().equals(".")){ + method(actionEvent); + }else if (actionEvent.getActionCommand().equals("0")){ + method(actionEvent); + } else if (actionEvent.getActionCommand().equals("1")){ + method(actionEvent); + }else if(actionEvent.getActionCommand().equals("2")){ + method(actionEvent); + }else if (actionEvent.getActionCommand().equals("3")){ + method(actionEvent); + }else if (actionEvent.getActionCommand().equals("4")){ + method(actionEvent); + }else if (actionEvent.getActionCommand().equals("5")){ + method(actionEvent); + }else if (actionEvent.getActionCommand().equals("6")){ + method(actionEvent); + }else if (actionEvent.getActionCommand().equals("7")){ + method(actionEvent); + }else if (actionEvent.getActionCommand().equals("8")){ + method(actionEvent); + }else if (actionEvent.getActionCommand().equals("9")){ + method(actionEvent); + }else if (actionEvent.getActionCommand().equals("±")){ + if(_count){ + if (cal[0].contains(".")){ + cal[0] = String.valueOf(Double.parseDouble(cal[0]) * (-1)); + jTextField.setText(cal[0]); + }else { + cal[0] = String.valueOf(Integer.parseInt(cal[0]) * (-1)); + jTextField.setText(cal[0]); + } + }else { + if (cal[2].contains(".")){ + cal[2] = String.valueOf(Double.parseDouble(cal[2]) * (-1)); + jTextField.setText(cal[2]); + }else { + cal[2] = String.valueOf(Integer.parseInt(cal[2]) * (-1)); + jTextField.setText(cal[2]); + } + } + }else if(actionEvent.getActionCommand().equals("√")){ + if(_count){ + cal[0] = String.valueOf(Math.pow(Double.parseDouble(cal[0]),0.5)); + jTextField.setText(cal[0]); + }else { + cal[2] = String.valueOf(Math.pow(Double.parseDouble(cal[2]),0.5)); + jTextField.setText(cal[2]); + } + }else if(actionEvent.getActionCommand().equals("1/x")){ + if(_count){ + cal[0] = String.valueOf(1/Double.parseDouble(cal[0])); + jTextField.setText(cal[0]); + }else { + cal[2] = String.valueOf(1/Double.parseDouble(cal[2])); + jTextField.setText(cal[2]); + } + }else if(actionEvent.getActionCommand().equals("←")){ + if(_count){ + cal[0] = cal[0].substring(0,cal[0].length()-1); + if(cal[0].equals("")){ + jTextField.setText("0"); + }else { + jTextField.setText(cal[0]); + } + }else { + cal[2] = cal[2].substring(0,cal[2].length()-1); + if(cal[2].equals("")){ + jTextField.setText("0"); + }else { + jTextField.setText(cal[2]); + } + } + }else if(actionEvent.getActionCommand().equals("CE")){ + if (_count){ + cal[0]=""; + jTextField.setText("0"); + }else { + cal[2]=""; + jTextField.setText("0"); + } + }else if(actionEvent.getActionCommand().equals("C")){ + _count = true; + cal[0]=""; + cal[1]=""; + cal[2]=""; + cal[3]=""; + jTextField.setText("0"); + }else if (actionEvent.getActionCommand().equals("+")){ + if (!cal[0].equals("")&&!cal[2].equals("")){ + if (cal[0].contains(".") || cal[2].contains(".")){ + cal[0]=String.valueOf(Double.parseDouble(cal[0]) + Double.parseDouble(cal[2])); + }else { + cal[0] = String.valueOf(Integer.parseInt(cal[0]) + Integer.parseInt(cal[2])); + } + cal[2]=""; + } + cal[1] = "+"; + _count=false; + jTextField.setText(cal[1]); + }else if (actionEvent.getActionCommand().equals("-")){ + if (!cal[0].equals("")&&!cal[2].equals("")){ + if (cal[0].contains(".") || cal[2].contains(".")){ + cal[0]=String.valueOf(Double.parseDouble(cal[0]) - Double.parseDouble(cal[2])); + }else { + cal[0] = String.valueOf(Integer.parseInt(cal[0]) - Integer.parseInt(cal[2])); + } + cal[2]=""; + } + cal[1] = "-"; + _count=false; + jTextField.setText(cal[1]); + }else if (actionEvent.getActionCommand().equals("*")){ + if (!cal[0].equals("")&&!cal[2].equals("")){ + if (cal[0].contains(".") || cal[2].contains(".")){ + cal[0]=String.valueOf(Double.parseDouble(cal[0]) * Double.parseDouble(cal[2])); + }else { + cal[0] = String.valueOf(Integer.parseInt(cal[0]) * Integer.parseInt(cal[2])); + } + cal[2]=""; + } + cal[1] = "*"; + _count=false; + jTextField.setText(cal[1]); + }else if (actionEvent.getActionCommand().equals("/")){ + if (!cal[0].equals("")&&!cal[2].equals("")){ + if (cal[0].contains(".") || cal[2].contains(".")){ + cal[0]=String.valueOf(Double.parseDouble(cal[0]) / Double.parseDouble(cal[2])); + }else { + cal[0] = String.valueOf(Integer.parseInt(cal[0]) / Integer.parseInt(cal[2])); + } + cal[2]=""; + } + cal[1] = "/"; + _count=false; + jTextField.setText(cal[1]); + }else if (actionEvent.getActionCommand().equals("%")){ + cal[0]=String.valueOf(Integer.parseInt(cal[0]) % Integer.parseInt(cal[2])); + cal[2]=""; + cal[1] = "%"; + _count=false; + jTextField.setText(cal[1]); + }else if (actionEvent.getActionCommand().equals("=")){ + if(cal[0].equals("")&&cal[2].equals("")){ + jTextField.setText("0"); + }else if(!cal[0].equals("")&&cal[2].equals("")){ + jTextField.setText(cal[0]); + }else if(!cal[0].equals("")&&!cal[2].equals("")){ + if(cal[1].equals("+")){ + if (cal[0].contains(".") || cal[2].contains(".")){ + cal[3]=String.valueOf(Double.parseDouble(cal[0]) + Double.parseDouble(cal[2])); + }else { + cal[3] = String.valueOf(Integer.parseInt(cal[0]) + Integer.parseInt(cal[2])); + } + jTextField.setText(cal[3]); + }else if (cal[1].equals("-")){ + if (cal[0].contains(".") || cal[2].contains(".")){ + cal[3]=String.valueOf(Double.parseDouble(cal[0]) - Double.parseDouble(cal[2])); + }else { + cal[3] = String.valueOf(Integer.parseInt(cal[0]) - Integer.parseInt(cal[2])); + } + jTextField.setText(cal[3]); + }else if(cal[1].equals("*")){ + if (cal[0].contains(".") || cal[2].contains(".")){ + cal[3]=String.valueOf(Double.parseDouble(cal[0]) * Double.parseDouble(cal[2])); + }else { + cal[3] = String.valueOf(Integer.parseInt(cal[0]) * Integer.parseInt(cal[2])); + } + jTextField.setText(cal[3]); + }else if (cal[1].equals("/")){ + if (cal[0].contains(".") || cal[2].contains(".")){ + cal[3]=String.valueOf(Double.parseDouble(cal[0]) / Double.parseDouble(cal[2])); + }else { + cal[3] = String.valueOf(Integer.parseInt(cal[0]) / Integer.parseInt(cal[2])); + } + jTextField.setText(cal[3]); + }else if (cal[1].equals("%")){ + cal[3]=String.valueOf(Integer.parseInt(cal[0]) % Integer.parseInt(cal[2])); + jTextField.setText(cal[3]); + } + } + cal[0]=cal[3]; + cal[2]=""; + _count=true; + _count1 = true; + cal[5]=cal[0]; + }else if(actionEvent.getActionCommand().equals("MC")){ + cal[4]=""; + }else if(actionEvent.getActionCommand().equals("MR")){ + if(_count){ + if(!cal[4].equals("")){ + cal[0]=cal[4]; + jTextField.setText(cal[0]); + } + }else { + if(!cal[4].equals("")){ + cal[2]=cal[4]; + jTextField.setText(cal[2]); + } + } + }else if(actionEvent.getActionCommand().equals("MS")){ + if(_count){ + cal[0]=""; + } + cal[4]=cal[5]; + System.out.println("cal[5]"+cal[5]); + System.out.println("ms:"+cal[4]); + }else if(actionEvent.getActionCommand().equals("M+")){ + if(!cal[4].equals("")){ + if (cal[4].contains(".") || cal[5].contains(".")){ + cal[4]=String.valueOf(Double.parseDouble(cal[4]) + Double.parseDouble(cal[5])); + }else { + cal[4] = String.valueOf(Integer.parseInt(cal[4]) + Integer.parseInt(cal[5])); + } + } + }else if(actionEvent.getActionCommand().equals("M-")){ + if(!cal[4].equals("")){ + if (cal[4].contains(".") || cal[5].contains(".")){ + cal[4]=String.valueOf(Double.parseDouble(cal[4]) - Double.parseDouble(cal[5])); + }else { + cal[4] = String.valueOf(Integer.parseInt(cal[4]) - Integer.parseInt(cal[5])); + } + } + } + } + public void method(ActionEvent actionEvent){ + if(_count){ + if (_count1){ + cal[0]=""; + _count1=false; + } + cal[0] += actionEvent.getActionCommand(); + cal[5]=cal[0]; + System.out.println(cal[5]); + }else { + cal[2] += actionEvent.getActionCommand(); + cal[5]=cal[2]; + } + jTextField.setText(actionEvent.getActionCommand()); + } + } - } -} -- Gitee