计算器(Java)

来源:互联网 发布:重庆江北离家纺城源码 编辑:程序博客网 时间:2024/06/15 17:10

第一个Java程序。。

import java.awt.Button;import java.awt.Dimension;import java.awt.FlowLayout;import java.awt.Frame;import java.awt.GridLayout;import java.awt.TextField;import javax.swing.JLabel;import javax.swing.JMenu;import javax.swing.JMenuItem;import javax.swing.JPanel;import javax.swing.JFrame;import javax.swing.JTextField;import java.awt.BorderLayout;import javax.swing.JMenuBar;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;public class Main{JFrame frame = new JFrame("计算器");        JMenuBar b = new JMenuBar();            //菜单JMenu bb = new JMenu("菜单");JMenuItem bb1 = new JMenuItem("清除");JMenuItem bb2 = new JMenuItem("重新开始");JTextField text = new JTextField();      //显示屏JPanel p = new JPanel();               //面板,装前三行JPanel p0 = new JPanel();             //装p和p2JPanel p2 = new JPanel();  //装最后一行按钮double result=0;char ch;int flag=0,n=0;public  void go(){b.setPreferredSize(new Dimension(285,20));bb.add(bb1);bb.add(bb2);b.add(bb);text.setText("0");text.setHorizontalAlignment(JTextField.RIGHT);   //从右显示p0.setLayout(new BorderLayout());p0.add(p,BorderLayout.NORTH);p0.add(p2,BorderLayout.CENTER);p.setLayout(new GridLayout(3,3,0,0));p2.setLayout(new FlowLayout(FlowLayout.LEFT,0,0));Button b0 = new Button("0");           //按钮b0.setPreferredSize(new Dimension(77,40));Button b1 = new Button("1");b1.setPreferredSize(new Dimension(68, 40));Button b2 = new Button("2");b2.setPreferredSize(new Dimension(68, 40));Button b3 = new Button("3");b3.setPreferredSize(new Dimension(68, 40));Button b4 = new Button("4");b4.setPreferredSize(new Dimension(68, 40));Button b5 = new Button("5");b5.setPreferredSize(new Dimension(68, 40));Button b6 = new Button("6");b6.setPreferredSize(new Dimension(68, 40));Button b7 = new Button("7");b7.setPreferredSize(new Dimension(68, 40));Button b8 = new Button("8");b8.setPreferredSize(new Dimension(68, 40));Button b9 = new Button("9");b9.setPreferredSize(new Dimension(68, 40));Button b10 = new Button("=");b10.setPreferredSize(new Dimension(154, 40));Button b11 = new Button("+");b11.setPreferredSize(new Dimension(68,40));Button b12 = new Button("-");b12.setPreferredSize(new Dimension(68, 40));Button b13 = new Button("*");b13.setPreferredSize(new Dimension(68, 40));Button b14 = new Button("/");b14.setPreferredSize(new Dimension(77,40));p.add(b1);p.add(b2);p.add(b3);p.add(b11);p.add(b4);p.add(b5);p.add(b6);p.add(b12);p.add(b7);p.add(b8);p.add(b9);p.add(b13);p2.add(b0);p2.add(b10);p2.add(b14);frame.add(b,BorderLayout.NORTH);frame.add(text,BorderLayout.CENTER);frame.add(p0,BorderLayout.SOUTH);frame.setPreferredSize(new Dimension(315,300));frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setResizable(false);        //不能放大frame.pack();frame.setVisible(true);b0.addActionListener(new ActionA());b1.addActionListener(new ActionA());b2.addActionListener(new ActionA());b3.addActionListener(new ActionA());b4.addActionListener(new ActionA());b5.addActionListener(new ActionA());b6.addActionListener(new ActionA());b7.addActionListener(new ActionA());b8.addActionListener(new ActionA());b9.addActionListener(new ActionA());b10.addActionListener(new ActionD());b11.addActionListener(new ActionF());b12.addActionListener(new ActionF());b13.addActionListener(new ActionF());b14.addActionListener(new ActionF());bb1.addActionListener(new Clear());bb2.addActionListener(new Begin());}public static void main(String[] args){Main m = new Main();m.go();}/** *  * 按钮事件 * */class ActionA implements ActionListener{@Overridepublic void actionPerformed(ActionEvent e){n=0;String s1 = e.getActionCommand();   //取按钮上的值double l1 = Double.valueOf(s1);String s2 = text.getText();      //取显示屏上的值double l2=0;if(s2.equals("除数不能为0")){text.setText("0"); l2=0;}else{l2  = Double.valueOf(s2);}if(flag==1){text.setText("0");l2=0;flag=0;}double l3 = l2*10+l1;String s = Double.toString(l3);text.setText(s);}}/** *  * 三个符号事件+-/ * */class ActionF implements ActionListener{@Overridepublic void actionPerformed(ActionEvent e){String s1 = text.getText();      //取显示屏上的值double l1 = Double.valueOf(s1);result = l1;//System.out.println(result);text.setText("0");String s2 = e.getActionCommand();   //取按钮上的值char [] c = s2.toCharArray();      //取符号ch = c[0];}}/** *  *  "/"事件 * */class ActionD implements ActionListener{@Overridepublic void actionPerformed(ActionEvent e){if(n==1)return ;String s1 = text.getText();      //取显示屏上的值double l1 = Double.valueOf(s1);if(s1.equals("0.0")){text.setText("除数不能为0");result = 0;flag = 0;return ;}switch(ch){case '+':result = result + l1;break;case '-':result = result - l1;break;case '*':result = result * l1;break;case '/':result = result / l1;break;}String s = Double.toString(result);text.setText(s);result = 0;flag=1;n=1; //防止按多次“=”}}/** *  *重新开始 * */class Begin implements ActionListener{@Overridepublic void actionPerformed(ActionEvent e){result = 0;flag = 0;text.setText("0");}}/** *  *清除最后一位 * */class Clear implements ActionListener{@Overridepublic void actionPerformed(ActionEvent e){String s ="0";String s1 = text.getText();      //取显示屏上的值char [] c = s1.toCharArray();     for(int i=0;i<c.length-1;++i){if(i==0){s = Character.toString(c[i]);continue;}s = s + c[i];}text.setText(s);}}}


0 0