//摸版没搞,大概只有本人能读!! import java.util.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.lang.Math; public class test extends JFrame{ static int count=0,all=0,but; static String fuhao,output=""; private JLabel promptLabel; protected static JTextField inputField; private JTextArea outputArea; private JButton j0,j1,j2,j3,j4,j5,j6,j7,j8,j9,x1,x2,y1,y2,s1,s2; static int cont[]=new int[9]; static int paixu[]=new int[50]; private String fuhaoString[]=new String[50]; public test(){ super("ceshi StringTokenizer"); Container container=getContentPane(); container.setLayout(new FlowLayout()); promptLabel=new JLabel("计算器"); container.add(promptLabel); inputField=new JTextField(20); inputField.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent event){ StringTokenizer tokens=new StringTokenizer(event.getActionCommand()); outputArea.setText("Number of elements"+tokens.countTokens()+"\nThe tokens are:\n"); while(tokens.hasMoreTokens()) outputArea.append(tokens.nextToken()+"\n"); } }); container.add(inputField); j1=new JButton("1"); j2=new JButton("2"); j3=new JButton("3"); x1=new JButton("*"); x2=new JButton("/"); j4=new JButton("4"); j5=new JButton("5"); j6=new JButton("6"); y1=new JButton("+"); y2=new JButton("-"); j7=new JButton("7"); j8=new JButton("8"); j9=new JButton("9"); s1=new JButton("="); j0=new JButton("0"); //1-------------- j1.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent event){ count++; paixu(1); output+=paixu[count]; inputField.setText(output); } }); //2-------------- j2.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent event){ count++; paixu(2); output+=paixu[count]; inputField.setText(output); } } ); //3-------------- j3.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent event){ count++; paixu(3); output+=paixu[count]; inputField.setText(output); } } );//4----------- j4.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent event){ count++; paixu(4); output+=paixu[count]; inputField.setText(output); } } ); //5-------------- j5.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent event){ count++; paixu(5); output+=paixu[count]; inputField.setText(output); } } ); //6--------------------- j6.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent event){ count++; paixu(6); output+=paixu[count]; inputField.setText(output); } } ); //7---------------------- j7.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent event){ count++; paixu(7); output+=paixu[count]; inputField.setText(output); } } ); //8------------ j8.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent event){ count++; paixu(8); output+=paixu[count]; inputField.setText(output); } } ); //9------------------- j9.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent event){ count++; paixu(9); output+=paixu[count]; inputField.setText(output); } } ); //0----------------------- j0.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent event){ count++; paixu(0); output+=paixu[count]; inputField.setText(output); } } ); //+----------- but第二个数组的记录 y1.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent event){ fuhaoduizhan("+"); cont[but]=Integer.parseInt(output.trim());//去掉空格,并存进CONT第一个值里面 count=0;//输入数堆盏清零 but++;//标识第几个数输入 output="";//output清空 } });//- --------------- y2.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent event){ fuhao="-"; cont[but]=Integer.parseInt(output.trim());//去掉空格 count=0; but++; output=""; } }); // *--------------- x1.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent event){ fuhao="*"; cont[but]=Integer.parseInt(output.trim());//去掉空格 count=0; but++; output=""; } }); // / --------------- x2.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent event){ fuhao="/"; cont[but]=Integer.parseInt(output.trim());//去掉空格 count=0; but++; output=""; } }); //= -------------------- s1.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent event){/* cont[but]=Integer.parseInt(output.trim());//but控制的第二个输入数 if(fuhao=="+")//+ { cont[but]=cont[but-1]+cont[but]; String All=""; All+=cont[1]; inputField.setText(All); output=All; //第N次运算保留 } else if(fuhao=="-")//- { cont[but]=cont[but-1]-cont[but]; String All=""; All+=cont[1]; inputField.setText(All); output=All; } else if(fuhao=="*")//* { cont[1]=cont[0]*cont[1]; String All=""; All+=cont[1]; inputField.setText(All); output=All; } else if(fuhao=="/")// / { cont[1]=cont[0]/cont[1]; String All=""; All+=cont[1]; inputField.setText(All); output=All; } //清零 count=0; but-=1; */// output=""; fuhaodigui(); } }); container.add(j9); container.add(j8); container.add(j7); container.add(x1); container.add(x2); container.add(j6); container.add(j5); container.add(j4); container.add(y1); container.add(y2); container.add(j3); container.add(j2); container.add(j1); container.add(j0); container.add(s1); math(); //sin等涵数的类 outputArea=new JTextArea(10,18); outputArea.setEditable(false); container.add(new JScrollPane(outputArea)); setSize(275,500); setVisible(true); } public static void main(String args[]){ test application=new test(); application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } //堆栈------------------------- private void paixu(int button){ paixu[count]=button; } //符号堆盏---------------------- private void fuhaoduizhan(String fuhao){ fuhaoString[but]=fuhao; } //第归运算---------------------- private void fuhaodigui(){ cont[but]=Integer.parseInt(output.trim());//but控制的第二个输入数 if(fuhaoString[but]=="+")//+ { cont[but]=cont[but-1]+cont[but]; String All=""; All+=cont[1]; inputField.setText(All); output=All; //第N次运算保留 } else if(fuhaoString[but]=="-")//- { cont[but]=cont[but-1]-cont[but]; String All=""; All+=cont[1]; inputField.setText(All); output=All; } else if(fuhaoString[but]=="*")//* { cont[1]=cont[0]*cont[1]; String All=""; All+=cont[1]; inputField.setText(All); output=All; } else if(fuhaoString[but]=="/")// / { cont[1]=cont[0]/cont[1]; String All=""; All+=cont[1]; inputField.setText(All); output=All; } //清零 count=0; but-=1; } //Math涵数按钮引入 private void math(){ //加入涵数按钮 Mathhanshu hanshu=new Mathhanshu(); Container container=getContentPane(); container.add(hanshu.sin1); container.add(hanshu.cos1); container.add(hanshu.tan1); container.add(hanshu.tozero); }} //Math涵数按钮class Mathhanshu { protected JButton sin1,cos1,tan1,tozero; public Mathhanshu(){ sin1=new JButton("sin"); cos1=new JButton("cos"); tan1=new JButton("tan"); tozero=new JButton("清零"); ActionListener listener= new TT(); sin1.addActionListener(listener); cos1.addActionListener(listener); tan1.addActionListener(listener); tozero.addActionListener(listener); } class TT implements ActionListener{ public void actionPerformed(ActionEvent event){ if(sin1==event.getSource()) { test.cont[test.but]=Integer.parseInt(test.output.trim()); //cont为最初的值 test.output=""+Math.sin(test.cont[test.but]); test.inputField.setText(test.output); } if(cos1==event.getSource()) { test.cont[test.but]=Integer.parseInt(test.output.trim()); test.output=""+Math.cos(test.cont[test.but]); test.inputField.setText(test.output); } if(tan1==event.getSource()) { test.cont[test.but]=Integer.parseInt(test.output.trim()); test.output=""+Math.tan(test.cont[test.but]); test.inputField.setText(test.output); } if(tozero==event.getSource())//未完成 { test.inputField.setText(""); test.but=0; test.count=0; test.output=""; } } } }

评论