diff --git a/src/java2022spring/Test.java b/src/java2022spring/Test.java index 24deb29bfc0e5f50fdedcd21b504e77b529d48b6..a9f0965157f0d0da5169ee8a2f593fd3af86d0d0 100644 --- a/src/java2022spring/Test.java +++ b/src/java2022spring/Test.java @@ -1,7 +1,98 @@ package java2022spring; - -public class Test { - public static void main(String[] args) { - System.out.println("Hello world!"); +import javax.swing.*; +import java.awt.*; +import java.awt.event.*; +import java.applet.*; +public class calculator extends JPanel implements ActionListener{ + JButton bt1,bt2,bt3,bt4,bt5,bt6,bt7,bt8,bt9,bt0,addbutton6; + JButton addbutton,addbutton1,addbutton2,addbutton3,addbutton4,addbutton5,addbutton7; + JButton C; + JButton equalbutton; + JTextField result; + int flag =0,calresult; + Integer rt,rs; + String current; //当前值 + String tem; //显示屏上的值 + StringBuffer number; + public calculator( ) { + rt = new Integer(0); + rs =new Integer(0); + number =new StringBuffer( ); + result = new JTextField(8); + result.setHorizontalAlignment(JTextField.RIGHT); + C = new JButton("C"); + C.addActionListener(this); + addbutton4=new JButton("%"); + addbutton4.addActionListener(this); + addbutton5=new JButton("₂"); + addbutton5.addActionListener(this); + addbutton6=new JButton("√"); + addbutton6.addActionListener(this); + addbutton3=new JButton("/"); + bt1 =new JButton("1"); + bt1.addActionListener(this); + bt2 =new JButton("2"); + bt2.addActionListener(this); + bt3 =new JButton("3"); + bt3.addActionListener(this); + bt4 =new JButton("4"); + bt4.addActionListener(this); + bt5 =new JButton("5"); + bt5.addActionListener(this); + bt6 =new JButton("6"); + bt6.addActionListener(this); + bt7 =new JButton("7"); + bt7.addActionListener(this); + bt8 =new JButton("8"); + bt8.addActionListener(this); + bt9 =new JButton("9"); + bt9.addActionListener(this); + bt0 =new JButton("0"); + bt0.addActionListener(this); + addbutton=new JButton("+"); + addbutton1=new JButton("-"); + addbutton2=new JButton("*"); + addbutton3=new JButton("/"); + addbutton4=new JButton("%"); + addbutton.addActionListener(this); + addbutton7=new JButton("."); + addbutton7.addActionListener(this); + addbutton1.addActionListener(this); + addbutton2.addActionListener(this); + addbutton3.addActionListener(this); + addbutton4.addActionListener(this); + equalbutton=new JButton("="); + equalbutton.addActionListener(this); + equalbutton.setEnabled(false); + setLayout(new BorderLayout(20,20)); + add(result,BorderLayout.NORTH); + JPanel numberpanel=new JPanel( ); + numberpanel.setLayout(new GridLayout(5,5,5,5)); + numberpanel.add(C); + numberpanel.add(addbutton4); + numberpanel.add(addbutton5); + numberpanel.add(addbutton6); + numberpanel.add(bt7); + numberpanel.add(bt8); + numberpanel.add(bt9); + numberpanel.add(addbutton3); + numberpanel.add(bt4); + numberpanel.add(bt5); + numberpanel.add(bt6); + numberpanel.add(addbutton2); + numberpanel.add(bt1); + numberpanel.add(bt2); + numberpanel.add(bt3); + numberpanel.add(addbutton1); + numberpanel.add(bt0); + numberpanel.add(addbutton7); + numberpanel.add(equalbutton); + numberpanel.add(addbutton); + add(numberpanel,BorderLayout.CENTER); + } + @Override + public void actionPerformed(ActionEvent e) { + // TODO 自动生成的方法存根 + } } diff --git a/src/java2022spring/calculator.java b/src/java2022spring/calculator.java new file mode 100644 index 0000000000000000000000000000000000000000..8241a59e926fa1fe2576427c96372ddec0d0c61c --- /dev/null +++ b/src/java2022spring/calculator.java @@ -0,0 +1,200 @@ +package java2022spring; +import javax.swing.*; +import java.awt.*; +import java.awt.event.*; +import java.applet.*; +public class calculator extends JPanel implements ActionListener{ + JButton bt1,bt2,bt3,bt4,bt5,bt6,bt7,bt8,bt9,bt0,addbutton6; + JButton addbutton,addbutton1,addbutton2,addbutton3,addbutton4,addbutton5,addbutton7; + JButton C; + JButton equalbutton; + JTextField result; + int flag =0,calresult; + Integer rt,rs; + String current; //当前值 + String tem; //显示屏上的值 + StringBuffer number; + public calculator( ) { + rt = new Integer(0); + rs =new Integer(0); + number =new StringBuffer( ); + result = new JTextField(8); + result.setHorizontalAlignment(JTextField.RIGHT); + C = new JButton("C"); + C.addActionListener(this); + addbutton4=new JButton("%"); + addbutton4.addActionListener(this); + addbutton5=new JButton("₂"); + addbutton5.addActionListener(this); + addbutton6=new JButton("√"); + addbutton6.addActionListener(this); + addbutton3=new JButton("/"); + bt1 =new JButton("1"); + bt1.addActionListener(this); + bt2 =new JButton("2"); + bt2.addActionListener(this); + bt3 =new JButton("3"); + bt3.addActionListener(this); + bt4 =new JButton("4"); + bt4.addActionListener(this); + bt5 =new JButton("5"); + bt5.addActionListener(this); + bt6 =new JButton("6"); + bt6.addActionListener(this); + bt7 =new JButton("7"); + bt7.addActionListener(this); + bt8 =new JButton("8"); + bt8.addActionListener(this); + bt9 =new JButton("9"); + bt9.addActionListener(this); + bt0 =new JButton("0"); + bt0.addActionListener(this); + addbutton=new JButton("+"); + addbutton1=new JButton("-"); + addbutton2=new JButton("*"); + addbutton3=new JButton("/"); + addbutton4=new JButton("%"); + addbutton.addActionListener(this); + addbutton7=new JButton("."); + addbutton7.addActionListener(this); + addbutton1.addActionListener(this); + addbutton2.addActionListener(this); + addbutton3.addActionListener(this); + addbutton4.addActionListener(this); + equalbutton=new JButton("="); + equalbutton.addActionListener(this); + equalbutton.setEnabled(false); + setLayout(new BorderLayout(20,20)); + add(result,BorderLayout.NORTH); + JPanel numberpanel=new JPanel( ); + numberpanel.setLayout(new GridLayout(5,5,5,5)); + numberpanel.add(C); + numberpanel.add(addbutton4); + numberpanel.add(addbutton5); + numberpanel.add(addbutton6); + numberpanel.add(bt7); + numberpanel.add(bt8); + numberpanel.add(bt9); + numberpanel.add(addbutton3); + numberpanel.add(bt4); + numberpanel.add(bt5); + numberpanel.add(bt6); + numberpanel.add(addbutton2); + numberpanel.add(bt1); + numberpanel.add(bt2); + numberpanel.add(bt3); + numberpanel.add(addbutton1); + numberpanel.add(bt0); + numberpanel.add(addbutton7); + numberpanel.add(equalbutton); + numberpanel.add(addbutton); + add(numberpanel,BorderLayout.CENTER); + } + public void actionPerformed(ActionEvent evt){ + Object source =evt.getSource(); + if(source ==bt1)number.append("1"); + else if (source ==bt2)number.append("2"); + else if (source ==bt3)number.append("3"); + else if (source ==bt4)number.append("4"); + else if (source ==bt5)number.append("5"); + else if (source ==bt6)number.append("6"); + else if (source ==bt7)number.append("7"); + else if (source ==bt8)number.append("8"); + else if (source ==bt9)number.append("9"); + else if (source ==bt0)number.append("0"); + result.setText(number.toString()); + if(flag ==0) + { + current = number.toString(); + equalbutton.setEnabled(false); + } + if(flag == 1||flag==2||flag==3||flag==4||flag==5||flag==6||flag==7) + { + tem=number.toString(); + equalbutton.setEnabled(true); + } + if(source ==addbutton) + { + flag= 1; + number=new StringBuffer(); + equalbutton.setEnabled(false); + } + if(source ==addbutton1) + { + flag= 2; + number=new StringBuffer(); + equalbutton.setEnabled(false); + } + if(source ==addbutton2) + { + flag= 3; + number=new StringBuffer(); + equalbutton.setEnabled(false); + } + if(source ==addbutton3) + { + flag= 4; + number=new StringBuffer(); + equalbutton.setEnabled(false); + } + if(source ==addbutton4) + { + flag= 5; + number=new StringBuffer(); + equalbutton.setEnabled(false); + } + if(source ==addbutton5) + { + flag= 6; + number=new StringBuffer(); + equalbutton.setEnabled(false); + } + if(source ==addbutton6) + { + flag= 7; + number=new StringBuffer(); + equalbutton.setEnabled(false); + } + if(source == equalbutton) + { + rs=Integer.valueOf(tem); + rt=Integer.valueOf(current); + if(flag== 1) + calresult=rt.intValue()+rs.intValue(); + else if(flag==2) + calresult=rt.intValue()-rs.intValue(); + else if(flag==3) + calresult=rt.intValue()*rs.intValue(); + else if(flag==4) + calresult=rt.intValue()/rs.intValue(); + else if(flag==5) + calresult=rt.intValue()%rs.intValue(); + else if(flag==6) + calresult=rt.intValue()*rt.intValue(); + else if(flag==7) + calresult=(int) Math.sqrt(rt.intValue()); + result.setText(String.valueOf(calresult)); + flag=0; + equalbutton.setEnabled(false); + number=new StringBuffer(); + } + if(source == C) + { + number = new StringBuffer(); + equalbutton.setEnabled(false); + flag=0; + } + } + public static void main(String set[ ]){ + JFrame count = new JFrame("计算器"); + count.addWindowListener(new WindowAdapter( ){ + public void windowClosing(WindowEvent e){ + System.exit(0); + } + }); + calculator c =new calculator( ); + count.getContentPane( ).add(c); + count.setSize(300,300); + count.setVisible(true); + } +} \ No newline at end of file