为了账号安全,请及时绑定邮箱和手机立即绑定

怎样用java制作一个简单的计算器app

怎样用java制作一个简单的计算器app

傲骨 2016-10-23 17:15:12
有加减乘除小数点等于的运算就行了,反正我开始点需other, 然后点jframe,进入页面之后点一下水平制然后就点什么jbutton jText之类的,然后这些按钮里面写什么内容呢??我就不会了
查看完整描述

1 回答

已采纳
?
大咪

TA贡献785条经验 获得超332个赞


		
		import java.awt.*;
		import java.awt.event.*;
		import javax.swing.*;
		 
		public class Calc extends JFrame implements ActionListener {
		    private static final long serialVersionUID = -169068472193786457L;
		    private class WindowCloser extends WindowAdapter {
		       public void windowClosing(WindowEvent we) {
		           System.exit(0);
		       }
		    }
		 
		    int i;
		        private final String[] str = { "7", "8", "9", "/", "4", "5", "6", "*", "1",
		           "2", "3", "-", ".", "0", "=", "+" };
		    // 建立按钮
		    JButton[] buttons = new JButton[str.length];
		    // 撤销重置
		    JButton reset = new JButton("CE");
		    // 建立文本域显示结果
		    JTextField display = new JTextField("0");
		    
		        public Calc() {
		       super("Calculator");
		       // 添加一个面板
		       JPanel panel1 = new JPanel(new GridLayout(4, 4));
		       // panel1.setLayout(new GridLayout(4,4));
		       for (i = 0; i < str.length; i++) {
		           buttons[i] = new JButton(str[i]);
		           panel1.add(buttons[i]);
		       }
		       JPanel panel2 = new JPanel(new BorderLayout());
		       // panel2.setLayout(new BorderLayout());
		       panel2.add("Center", display);
		       panel2.add("East", reset);
		       // JPanel panel3 = new Panel();
		       getContentPane().setLayout(new BorderLayout());
		       getContentPane().add("North", panel2);
		       getContentPane().add("Center", panel1);
		       // 添加操作动作的监听器.
		       for (i = 0; i < str.length; i++)
		           buttons[i].addActionListener(this);
		       // 为重置按钮添加监听器
		       reset.addActionListener(this);
		       display.addActionListener(this);
		       // The "close" button "X".
		       addWindowListener(new WindowCloser());
		       // Initialize the window size.
		       setSize(800, 800);
		       // Show the window.
		       // show(); Using show() while JDK version is below 1.5.
		       setVisible(true);
		       // Fit the certain size.
		       pack();
		    }   
		    
		    public void actionPerformed(ActionEvent e) {
		       Object target = e.getSource();
		       String label = e.getActionCommand();
		       if (target == reset)
		           handleReset();
		       else if ("0123456789.".indexOf(label) > 0)
		           handleNumber(label);
		       else
		           handleOperator(label);
		    }
		    // Is the first digit pressed?
		    boolean isFirstDigit = true;
		    /**
		     * Number handling.
		     * @param key the key of the button.
		     */
		    public void handleNumber(String key) {
		       if (isFirstDigit)
		           display.setText(key);
		       else if ((key.equals(".")) && (display.getText().indexOf(".") < 0))
		           display.setText(display.getText() + ".");
		       else if (!key.equals("."))
		           display.setText(display.getText() + key);
		       isFirstDigit = false;
		    }
		    
		    /**
		     * Reset the calculator.
		     */
		    public void handleReset() {
		       display.setText("0");
		       isFirstDigit = true;
		       operator = "=";
		    }
		 
		    double number = 0.0;
		    String operator = "=";
		    
		       public void handleOperator(String key) {
		       if (operator.equals("+"))
		           number += Double.valueOf(display.getText());
		       else if (operator.equals("-"))
		           number -= Double.valueOf(display.getText());
		       else if (operator.equals("*"))
		           number *= Double.valueOf(display.getText());
		       else if (operator.equals("/"))
		           number /= Double.valueOf(display.getText());
		       else if (operator.equals("="))
		           number = Double.valueOf(display.getText());
		       display.setText(String.valueOf(number));
		       operator = key;
		       isFirstDigit = true;
		    }
		    
		    public static void main(String[] args) {
		       new Calc();
		    }
		}

	

你创建完的面板需要继承一个监听器,他的目的是监听你的按键并将参数传入,算法部分就是很简单的+-*/

查看完整回答
2 反对 回复 2016-10-23
  • 1 回答
  • 4 关注
  • 3842 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信