黑马程序员__小项目编写计算器代码!

分享自学编程期间的经验,包括观看的热门编程视频教程,如Java+3G开发、.NET项目及PHP元老级教程,通过这些资源学习如何编写计算器程序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 
跟大家推荐我自学期间收集的各种绝好视频:
 
风靡腾讯网络的Java+3G开发全套视频教程

屌丝们,最爱的.NET全套视频项目教程

史上一直被模仿10多年的PHP元老全套视频教程

 
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
 
public class Calculator extends JFrame{
  private Container container;//框架
  private JTextField tf;//定义文本框
  private Panel panel;
  private String cmd;
  private double result;//运算结果
  private boolean start;//运算开始判断
  
  Calculator(){
  
   super("计算器");
   container = getContentPane();
   container.setLayout(new BorderLayout());
   
   //添加文本框
   tf = new JTextField("0.0");
   container.add(tf,BorderLayout.NORTH);
   tf.setHorizontalAlignment(JTextField.RIGHT);
   tf.setEditable(false);
   
   //嵌套容器
   panel = new Panel();
   container.add(panel);
   
   start = true;
   result = 0;
   //最后运算等号
   cmd = "=";
   
    ActionListener insert = new InsertAction();
    ActionListener command = new CommandAction();
   
    //调用创建Button方法
    addButton("1",insert);
    addButton("2",insert);
    addButton("3",insert);
    addButton("0",insert);
    addButton("*",command);
    addButton("Back",insert);
    addButton("4",insert);
    addButton("5",insert);
    addButton("6",insert);
    addButton("+",command);
    addButton("/",command);
    addButton("Clear",insert);
    addButton("7",insert);
    addButton("8",insert);
    addButton("9",insert);
    addButton("-",command);
    addButton(".",insert);
    addButton("=",command);
    setSize(400,200);
    }
    
   private void addButton(String str,ActionListener listener){
    
     //添加Button方法(操作类型、注册监听器)
     JButton button=new JButton(str);
     button.addActionListener(listener);
     panel.setLayout(new GridLayout(3,6));
     panel.add(button);
     }
   
     private class InsertAction implements ActionListener{
    //插入,insert
       public void actionPerformed(ActionEvent event){
         String input=event.getActionCommand();
            if (start)
            {
              tf.setText("");
              start=false;
            }
              if(input.equals("Back"))
              {
               String str=tf.getText();
               if(str.length()>0)
                 tf.setText(str.substring(0,str.length()-1));
               }
              else if(input.equals("Clear"))
              {
               tf.setText("0");
               start=true;
              } 
              else
                tf.setText(tf.getText()+input);
          }
       }
     
    private class CommandAction implements ActionListener{
      //计算,command
          public void actionPerformed(ActionEvent e){
           
            String command=e.getActionCommand();
            if(start)
            {
             cmd=command;
             }
             else
            {
            calculate(Double.parseDouble(tf.getText()));
            cmd=command;
            start=true;
            }
            }
       }
     
   public void calculate(double x){
   
     //加减乘除运算
          if (cmd.equals("+")) result+=x;    
        else if (cmd.equals("-")) result-=x;
        else if (cmd.equals("*")) result*=x;   
        else if (cmd.equals("/")) result/=x;
        else if (cmd.equals("=")) result= x;
        tf.setText(""+ result);
        }
     
  public  static void  main(String []args){
  
   Calculator mycalculator=new Calculator();
   mycalculator.setLocation(300,300);
   mycalculator.setVisible(true);
   }
   
}

 跟大家推荐我自学期间收集的各种绝好视频:

风靡腾讯网络的Java+3G开发全套视频教程
屌丝们,最爱的.NET全套视频项目教程
史上一直被模仿10多年的PHP元老全套视频教程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值