diff --git a/src/java2022spring/Calculator.java b/src/java2022spring/Calculator.java new file mode 100644 index 0000000000000000000000000000000000000000..32b64a12840f7486ec3582faee273e80140041f1 --- /dev/null +++ b/src/java2022spring/Calculator.java @@ -0,0 +1,385 @@ +package java2022spring; + +import java.awt.*; +import javax.swing.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +public class Calculator { +public static void main(String[] args) { + JFrame cal =new JFrame("计算器"); + StringBuffer inputNum =new StringBuffer(); + JTextField TF = new JTextField(); + TF.setFont(new Font("宋体",Font.PLAIN,30)); + TF.setEnabled(false); + TF.setPreferredSize(new Dimension(540,100)); + TF.setSize(700,700); + TF.setHorizontalAlignment(JTextField.RIGHT); + cal.add(TF,BorderLayout.NORTH); + JPanel jp1 = new JPanel(); + cal.add(jp1); + jp1.setLayout(new GridLayout(6,4)); + cal.setSize(400,500); + cal.setLocation(300,200); + + JButton button[] =new JButton[23]; + button[1]=new JButton("CE"); + button[2]=new JButton("C"); + button[3]=new JButton("DEL"); + button[4]=new JButton("/"); + button[5]=new JButton("7"); + button[6]=new JButton("8"); + button[7]=new JButton("9"); + button[8]=new JButton("*"); + button[9]=new JButton("4"); + button[10]=new JButton("5"); + button[11]=new JButton("6"); + button[12]=new JButton("-"); + button[13]=new JButton("1"); + button[14]=new JButton("2"); + button[15]=new JButton("3"); + button[16]=new JButton("+"); + button[17]=new JButton("n"); + button[18]=new JButton("0"); + button[19]=new JButton("."); + button[20]=new JButton("="); + button[21]=new JButton("+/-"); + button[22]=new JButton("1/x"); + + + for(int i=1;i<23;i++) { + button[i].setFont(new Font("宋体",Font.BOLD,30)); + jp1.add(button[i]); + + } + + + button[4].addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + String sGet = TF.getText().toString(); +// char operation = '/'; + if(sGet.contains("=")) { + extracted(sGet, '/', inputNum, TF); + + }else{ + + inputNum.append('/'); + String str=inputNum.toString(); + TF.setText(str); + } + } + }); + + button[5].addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + inputNum.append('7'); + String str=inputNum.toString(); + TF.setText(str); + + } + }); + + button[6].addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + inputNum.append('8'); + String str=inputNum.toString(); + TF.setText(str); + + } + }); + + button[7].addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + inputNum.append('9'); + String str=inputNum.toString(); + TF.setText(str); + + } + }); + + button[8].addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + String sGet = TF.getText().toString(); + if(sGet.contains("=")) { + extracted(sGet, '*', inputNum, TF); + + }else { + inputNum.append('*'); + String str = inputNum.toString(); + TF.setText(str); + } + + } + }); + + button[9].addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + inputNum.append('4'); + String str=inputNum.toString(); + TF.setText(str); + + } + }); + + button[10].addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + inputNum.append('5'); + String str=inputNum.toString(); + TF.setText(str); + + } + }); + + button[11].addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + inputNum.append('6'); + String str=inputNum.toString(); + TF.setText(str); + + } + }); + + button[12].addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + String sGet = TF.getText().toString(); + if(sGet.contains("=")) { + extracted(sGet, '-', inputNum, TF); + + }else { + inputNum.append('-'); + String str = inputNum.toString(); + TF.setText(str); + } + } + }); + + button[13].addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + inputNum.append('1'); + String str=inputNum.toString(); + TF.setText(str); + + } + }); + + button[14].addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + inputNum.append('2'); + String str=inputNum.toString(); + TF.setText(str); + + } + }); + + button[15].addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + inputNum.append('3'); + String str=inputNum.toString(); + TF.setText(str); + + } + }); + + button[16].addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + String sGet = TF.getText().toString(); + if(sGet.contains("=")) { + extracted(sGet, '+', inputNum, TF); + + }else { + inputNum.append('+'); + String str = inputNum.toString(); + TF.setText(str); + } + } + }); + + + + button[18].addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + inputNum.append('0'); + String str=inputNum.toString(); + TF.setText(str); + + } + }); + + button[19].addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + inputNum.append('.'); + String str=inputNum.toString(); + TF.setText(str); + + } + }); + + + button[1].addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + inputNum.delete(0, inputNum.length()); + TF.setText(" "); + } + }); + + button[2].addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + inputNum.delete(0, inputNum.length()); + TF.setText(" "); + } + }); + + button[3].addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + if(inputNum.length()!=0) + inputNum.delete(inputNum.length()-1, inputNum.length()); + String str=inputNum.toString(); + TF.setText(str); + + } + });//DEL + + + button[17].addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + + String sGet = TF.getText().toString(); + if(sGet.contains("=")) { + extracted(sGet, 'n', inputNum, TF); + + }else { + inputNum.append('n'); + String str = inputNum.toString(); + TF.setText(str); + } + } + }); + + + button[21].addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { +// inputNum.append('-'); + String sGet = TF.getText().toString(); + if(sGet.contains("-")){ + + inputNum.delete(0,1) ; + }else{ + + inputNum.insert(0,'-'); + } + String str=inputNum.toString(); + TF.setText(str); + + } + }); + + button[22].addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + String sGet = TF.getText().toString(); + if(!sGet.contains("=")){ + + String num = inputNum.toString(); + inputNum.setLength(0); + inputNum.append("1/"+num); + String str=inputNum.toString(); + TF.setText(str); + }else{ + + + String sArgs[] = sGet.split("\\="); + double number[] = new double[2]; + number[1] = Double.parseDouble(sArgs[1]); + inputNum.setLength(0); + inputNum.append("1/"); + inputNum.append(""+number[1]); + String str1 = inputNum.toString(); + TF.setText(str1); + } + } + }); + + + + button[20].addActionListener(new ActionListener() { //借鉴 + + public void actionPerformed(ActionEvent e) { + String sGet = TF.getText().toString(); + if(sGet.contains("+")) { + String sArgs[] = sGet.split("\\+"); + double number[] = new double[2]; + for(int i=0;i<2;i++) { + number[i] = Double.parseDouble(sArgs[i]); + } + double num = number[0]+number[1]; + String ss = String.valueOf(num); + TF.setText(sGet+"="+ss); + } + + if(sGet.contains("-")) { + String sArgs[] = sGet.split("\\-"); + double number[] = new double[2]; + for(int i=0;i<2;i++) { + number[i] = Double.parseDouble(sArgs[i]); + } + double num = number[0]-number[1]; + String ss = String.valueOf(num); + TF.setText(sGet+"="+ss); + } + + if(sGet.contains("*")) { + String sArgs[] = sGet.split("\\*"); + double number[] = new double[2]; + for(int i=0;i<2;i++) { + number[i] = Double.parseDouble(sArgs[i]); + } + double num = number[0]*number[1]; + String ss = String.valueOf(num); + TF.setText(sGet+"="+ss); + } + + + if(sGet.contains("/")) { + String sArgs[] = sGet.split("\\/"); + double number[] = new double[2]; + for(int i=0;i<2;i++) { + number[i] = Double.parseDouble(sArgs[i]); + } + double num = number[0]/number[1]; + if(number[1]==0) { + TF.setText(sGet+"="+"Erroring"); + } + else { + String ss = String.valueOf(num); + TF.setText(sGet+"="+ss); + } + + } + if(sGet.contains("n")) { + String sArgs[] = sGet.split("n"); + double number[] = new double[2]; + for(int i=0;i<2;i++) { + number[i] = Double.parseDouble(sArgs[i]); + } + double num = (int)Math.pow(number[0],number[1]); + String ss = String.valueOf(num); + TF.setText(sGet+"="+ss); + } + + } + }); + + + cal.setVisible(true); + cal.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); +} + + private static void extracted(String sGet, char operation, StringBuffer inputNum, JTextField TF) { + String sArgs[] = sGet.split("\\="); + double number[] = new double[2]; + number[1] = Double.parseDouble(sArgs[1]); + inputNum.setLength(0); + inputNum.append(""+number[1]); + inputNum.append(operation); + String str= inputNum.toString(); + TF.setText(str); + } +} \ No newline at end of file diff --git a/src/java2022spring/Test.java b/src/java2022spring/Test.java deleted file mode 100644 index 24deb29bfc0e5f50fdedcd21b504e77b529d48b6..0000000000000000000000000000000000000000 --- a/src/java2022spring/Test.java +++ /dev/null @@ -1,7 +0,0 @@ -package java2022spring; - -public class Test { - public static void main(String[] args) { - System.out.println("Hello world!"); - } -}