简易计算器代码示例【部分】

来源:互联网 发布:乐知英语怎么收费 编辑:程序博客网 时间:2024/05/17 01:04

这部分代码只是提供了一个流程的参考,完整的实现需要大家自己努力完善。


package cly.calc;import java.awt.Color;import java.awt.EventQueue;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JTextField;public class Calc {private JFrame frame;private JButton btn0;private JButton btn1;private JButton btn2;private JButton btn3;private JButton btn4;private JButton btn5;private JButton btn6;private JButton btn7;private JButton btn8;private JButton btn9;private JButton btnSign;private JButton btnAdd;private JButton btnSub;private JButton btnMulti;private JButton btnDiv;private JButton btnEqual;private JTextField tbMessage;private char currentAct='=';private boolean flag=false;private double theResult=0;private double currentNum=0;/** * Launch the application. */public static void main(String[] args) {EventQueue.invokeLater(new Runnable() {public void run() {try {Calc window = new Calc();window.frame.setVisible(true);} catch (Exception e) {e.printStackTrace();}}});}/** * Create the application. */public Calc() {initialize();}/** * Initialize the contents of the frame. */private void initialize() {frame = new JFrame();frame.setBounds(100, 100, 450, 300);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.getContentPane().setLayout(null);tbMessage = new JTextField();tbMessage.setText("0");tbMessage.setBounds(50, 10, 255, 23);frame.getContentPane().add(tbMessage);tbMessage.setColumns(10);tbMessage.setHorizontalAlignment(JTextField.RIGHT);btn0 = new JButton("0");btn0.addActionListener(new btnNumber());btn0.setActionCommand("0");btn0.setBounds(47, 164, 59, 23);frame.getContentPane().add(btn0);btn1 = new JButton("1");btn1.addActionListener(new btnNumber());btn1.setActionCommand("1");btn1.setBounds(47, 58, 59, 23);frame.getContentPane().add(btn1);btn2 = new JButton("2");btn2.addActionListener(new btnNumber());btn2.setActionCommand("2");btn2.setBounds(116, 58, 64, 23);frame.getContentPane().add(btn2);btn3 = new JButton("3");btn3.addActionListener(new btnNumber());btn3.setActionCommand("3");btn3.setBounds(190, 58, 57, 23);frame.getContentPane().add(btn3);btn4 = new JButton("4");btn4.addActionListener(new btnNumber());btn4.setActionCommand("4");btn4.setBounds(47, 91, 59, 23);frame.getContentPane().add(btn4);btn5 = new JButton("5");btn5.addActionListener(new btnNumber());btn5.setActionCommand("5");btn5.setBounds(116, 91, 64, 23);frame.getContentPane().add(btn5);btn6 = new JButton("6");btn6.addActionListener(new btnNumber());btn6.setActionCommand("6");btn6.setBounds(190, 91, 57, 23);frame.getContentPane().add(btn6);btn7 = new JButton("7");btn7.addActionListener(new btnNumber());btn7.setActionCommand("7");btn7.setBounds(47, 124, 59, 23);frame.getContentPane().add(btn7);btn8 = new JButton("8");btn8.addActionListener(new btnNumber());btn8.setActionCommand("8");btn8.setBounds(116, 124, 64, 23);frame.getContentPane().add(btn8);btn9 = new JButton("9");btn9.addActionListener(new btnNumber());btn9.setActionCommand("9");btn9.setBounds(190, 124, 57, 23);frame.getContentPane().add(btn9);btnSign = new JButton("+/-");btnSign.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {if(e.getActionCommand().equals("negative")){if(!tbMessage.getText().equals("0")){tbMessage.setText("-"+tbMessage.getText());}btnSign.setActionCommand("positive");}else{tbMessage.setText(tbMessage.getText().substring(1,tbMessage.getText().length()));btnSign.setActionCommand("negative");}currentNum=Double.valueOf(tbMessage.getText());}});btnSign.setActionCommand("negative");btnSign.setBounds(116, 164, 131, 23);frame.getContentPane().add(btnSign);btnAdd = new JButton("+");btnAdd.addActionListener(new btnAction());btnAdd.setActionCommand("+");btnAdd.setBounds(258, 58, 47, 23);frame.getContentPane().add(btnAdd);btnSub = new JButton("-");btnSub.addActionListener(new btnAction());btnSub.setActionCommand("-");btnSub.setBounds(258, 91, 47, 23);frame.getContentPane().add(btnSub);btnMulti = new JButton("*");btnMulti.addActionListener(new btnAction());btnMulti.setActionCommand("*");btnMulti.setBounds(258, 124, 47, 23);frame.getContentPane().add(btnMulti);btnDiv = new JButton("/");btnDiv.addActionListener(new btnAction());btnDiv.setActionCommand("/");btnDiv.setBounds(258, 164, 47, 23);frame.getContentPane().add(btnDiv);btnEqual = new JButton("=");btnEqual.addActionListener(new btnAction());btnEqual.setActionCommand("=");btnEqual.setBounds(50, 197, 255, 23);frame.getContentPane().add(btnEqual);}class btnNumber implements ActionListener{@Overridepublic void actionPerformed(ActionEvent arg0) {// TODO Auto-generated method stubString theNum=arg0.getActionCommand();String tbNum=tbMessage.getText();if(tbNum.equals("0") || flag)tbMessage.setText(theNum);elsetbMessage.setText(tbNum+theNum);currentNum=Double.valueOf(tbMessage.getText());flag=false;}}class btnAction implements ActionListener{@Overridepublic void actionPerformed(ActionEvent arg0) {// TODO Auto-generated method stubString theAct=arg0.getActionCommand();switch(currentAct){case '+':theResult+=currentNum;tbMessage.setText(String.valueOf(theResult));break;case '-':theResult-=currentNum;tbMessage.setText(String.valueOf(theResult));break;case '*':theResult*=currentNum;tbMessage.setText(String.valueOf(theResult));break;case '/':theResult/=currentNum;tbMessage.setText(String.valueOf(theResult));break;case '=':theResult=Double.valueOf(tbMessage.getText());break;}flag=true;currentAct=theAct.charAt(0);currentNum=0;}}}


0 0
原创粉丝点击