import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; /** * Created by thinkpad on 2017/3/23. */ public class GameFrame extends JFrame{ private JButton a1,a2,a3,a4,a5,a6,a7,a8,a9,a0; private JButton b1,b2,b3,b4,b5,b6; private JButton ac,pingfang,zhengfu,baifen; private JPanel p0,p1,p2,p3,p4,p5; private JMenuBar mb1; private JMenu m1,m2; private JMenuItem mi1,mi2,mi3; private TextField tf1; private JButton button_test; double flag1=0,flag2=0,flag3=1,flag=0; char diag='0',equal='0'; double i=0; boolean kaiguan=false; public static void main(String[] args) { new GameFrame(); } public GameFrame(){ this.setTitle("calculator"); this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); this.setLocation(200,200); this.setSize(300,380); this.setLayout(new GridLayout(6,1)); this.setResizable(false); p0=new JPanel();p1=new JPanel();p2=new JPanel();p3=new JPanel();p4=new JPanel();p5=new JPanel(); this.add(p0); this.add(p1); this.add(p2); this.add(p3); this.add(p4); this.add(p5); mb1=new JMenuBar(); m1 =new JMenu("系统"); m2 =new JMenu("结束"); mi1=new JMenuItem("开发人员"); mi2=new JMenuItem("帮助"); mi3=new JMenuItem("over"); mb1.add(m1);mb1.add(m2); m1.add(mi1);m1.add(mi2);m2.add(mi3); tf1=new TextField(30); p0.add(mb1); FlowLayout f1=new FlowLayout(FlowLayout.CENTER,10,10); p0.setLayout(f1); p1.setLayout(f1); p2.setLayout(f1); p3.setLayout(f1); p4.setLayout(f1); p5.setLayout(f1); p1.add(tf1); a1=new JButton("1"); a2=new JButton("2"); a3=new JButton("3"); a4=new JButton("4"); a5=new JButton("5"); a6=new JButton("6"); a7=new JButton("7"); a8=new JButton("8"); a9=new JButton("9"); a0=new JButton("0"); b1=new JButton("+"); b2=new JButton("-"); b3=new JButton("*"); b4=new JButton("/"); b5=new JButton("="); b6=new JButton("."); ac=new JButton("AC"); baifen=new JButton("%"); zhengfu =new JButton("+/-"); pingfang=new JButton("^"); button_test=new JButton(); p2.add(a1);p2.add(a2);p2.add(a3);p2.add(b1);p2.add(ac); p3.add(a4);p3.add(a5);p3.add(a6);p3.add(b2);p3.add(zhengfu); p4.add(a7);p4.add(a8);p4.add(a9);p4.add(b3);p4.add(pingfang); p5.add(b6);p5.add(a0);p5.add(b5);p5.add(b4);p5.add(baifen); a1.addActionListener( new keylistener()); a2.addActionListener( new keylistener()); a3.addActionListener( new keylistener()); a4.addActionListener( new keylistener()); a5.addActionListener( new keylistener()); a6.addActionListener( new keylistener()); a7.addActionListener( new keylistener()); a8.addActionListener( new keylistener()); a9.addActionListener( new keylistener()); a0.addActionListener( new keylistener()); b1.addActionListener( new keylistener()); b2.addActionListener( new keylistener()); b3.addActionListener( new keylistener()); b4.addActionListener( new keylistener()); b5.addActionListener( new keylistener()); b6.addActionListener( new keylistener()); zhengfu.addActionListener( new keylistener()); pingfang.addActionListener( new keylistener()); baifen.addActionListener( new keylistener()); ac.addActionListener( new keylistener()); mi1.addActionListener( new keylistener()); mi2.addActionListener( new keylistener()); mi3.addActionListener( new keylistener()); this.setVisible(true); } class keylistener implements ActionListener{ @Override public void actionPerformed(ActionEvent e) { if (e.getSource()==a1){ System.out.println("1"); button_test=a1; tf1.setText(tf1.getText()+ button_test.getText()); flag=flag*10+1; if (kaiguan) { i++; } }else if (e.getSource()==a2){ System.out.println("2"); button_test=a2; tf1.setText(tf1.getText()+ button_test.getText()); flag=flag*10+2; if (kaiguan) { i++; } }else if (e.getSource()==a3) { System.out.println("3"); button_test = a3; tf1.setText(tf1.getText()+button_test.getText()); flag=flag*10+3; if (kaiguan) { i++; } }else if (e.getSource()==a4) { System.out.println("4"); button_test = a4; tf1.setText(tf1.getText()+button_test.getText()); flag=flag*10+4; if (kaiguan) { i++; } }else if (e.getSource()==a5) { System.out.println("5"); button_test = a5; tf1.setText(tf1.getText()+button_test.getText()); flag=flag*10+5; if (kaiguan) { i++; } }else if (e.getSource()==a6) { System.out.println("6"); button_test = a6; tf1.setText(tf1.getText()+button_test.getText()); flag=flag*10+6; if (kaiguan) { i++; } }else if (e.getSource()==a7) { System.out.println("7"); button_test = a7; tf1.setText(tf1.getText()+button_test.getText()); flag=flag*10+7; if (kaiguan) { i++; } }else if (e.getSource()==a8) { System.out.println("8"); button_test = a8; tf1.setText(tf1.getText()+button_test.getText()); flag=flag*10+8; if (kaiguan) { i++; } }else if (e.getSource()==a9) { System.out.println("9"); button_test = a9; tf1.setText(tf1.getText()+button_test.getText()); flag=flag*10+9; if (kaiguan) { i++; } }else if (e.getSource()==a0) { System.out.println("0"); button_test = a0; tf1.setText(tf1.getText()+button_test.getText()); flag=flag*10; if (kaiguan) { i++; } }else if (e.getSource()==b1) { System.out.println("+"); button_test = b1; tf1.setText(tf1.getText()+button_test.getText()); diag='+'; flag1=flag/(Math.pow(10,i)); flag=0; i=0; kaiguan=false; }else if (e.getSource()==b2) { System.out.println("-"); button_test = b2; tf1.setText(tf1.getText()+button_test.getText()); diag='-'; flag1=flag/(Math.pow(10,i)); flag=0; i=0; kaiguan=false; }else if (e.getSource()==b3) { System.out.println("*"); button_test = b3; tf1.setText(tf1.getText()+button_test.getText()); diag='*'; flag1=flag/(Math.pow(10,i)); flag=0; i=0; kaiguan=false; }else if (e.getSource()==b4) { System.out.println("/"); button_test = b4; tf1.setText(tf1.getText()+button_test.getText()); diag='/'; flag1=flag/(Math.pow(10,i)); flag=0; i=0; kaiguan=false; }else if (e.getSource()==b5) { System.out.println("="); button_test = b5; tf1.setText(tf1.getText()+button_test.getText()+" "); flag2=flag/(Math.pow(10,i)); flag=0; kaiguan=false; i=0; if (diag == '+') { flag3 = flag1 + flag2; } if (diag == '-') { flag3 = flag1 - flag2; } if (diag == '*') { flag3 = flag1*flag2; } if (diag == '/') { flag3 = flag1 / flag2; } if (diag =='^'){ flag3=Math.pow(flag1,flag2); } String s=""+flag3; tf1.setText(tf1.getText()+s+" "); flag1=0;flag2=0;flag3=0;flag=0; diag='0'; }else if (e.getSource()==b6) { System.out.println("."); button_test = b6; tf1.setText(tf1.getText()+button_test.getText()); kaiguan=true; i=0; }else if (e.getSource()==pingfang){ System.out.println("^"); button_test = pingfang; tf1.setText(tf1.getText()+button_test.getText()); diag='^'; flag1=flag/(Math.pow(10,i)); flag=0; i=0; kaiguan=false; }else if (e.getSource()==baifen){ flag=flag/100; tf1.setText(tf1.getText()+"%"); }else if (e.getSource()==zhengfu){ flag=-flag; if (flag<0) tf1.setText(tf1.getText()+"(-)"); }else if (e.getSource()==ac){ tf1.setText(""); flag1=0;flag2=0;flag3=0;flag=0; diag='0'; i=0; kaiguan=false; }else if (e.getSource()==mi3){ System.out.println("over"); System.exit(0); }else if (e.getSource()==mi1){ System.out.println("开发人员:"); new Frame2(); }else if (e.getSource()==mi2){ System.out.println("帮助"); new Frame3(); } } } }
Frame2文件
public static void main(String[] args) { new Frame2(); } public Frame2(){ this.setSize(200,300); this.setTitle("开发人员"); this.setLocation(200,200); this.setVisible(true); t1=new TextArea(); t1.setSize(200,300); t1.setLocation(0,0); t1.setText("MR.HXK"); this.add(t1); } }
Frame3文件
import javax.swing.*; import java.awt.*; /** * Created by thinkpad on 2017/3/25. */ public class Frame3 extends JFrame { private TextArea t1; public static void main(String[] args) { new Frame3(); } public Frame3(){ this.setSize(200,300); this.setTitle("帮助"); this.setLocation(200,200); this.setVisible(true); t1=new TextArea(); t1.setSize(200,300); t1.setLocation(0,0); t1.setText("本产品是一个基于双精度编写的计算器\n+/-实现数值的正负转换\n"); this.add(t1); } }