JAVA计算器



package TASK;

//对第一类计算器的描述
//问题:将运算符用下拉框实现
//改进:添加背景图片,下拉框选择运算符
import java.awt.Button;
import java.awt.Color;
import java.awt.Font;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.Label;
import java.awt.Panel;
import java.awt.TextField;
import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JComboBox;
import javax.swing.JOptionPane;

public class Task2Operator1 {
 public static void main(String args[]) {
  new MyFrame("Task2");
 }
}

class MyFrame extends Frame {
 MyFrame(String s) {
  super(s);
  //
  setLayout(new GridLayout(2, 1));
  setSize(400, 450);
  setVisible(true);
  setBackground(Color.CYAN);
  addWindowListener(new MyWindowListener());
  // this.setLayout(null);
  // BackGround bg = new BackGround();
  MyPanel p1 = new MyPanel();
  // Panel p1 = new Panel(new BorderLayout());
  Panel p2 = new Panel(new GridLayout(6, 2));
  //final JComboBox box = new JComboBox();
  // add(bg);
  add(p1);
  add(p2);
  //

        //JComboBox box2 = new JComboBox();
  Label num1 = new Label("操作数1:");
  Label op = new Label("运算符:");
  Label num2 = new Label("操作数2:");
  Label result = new Label("结果是:");
  final TextField ft1 = new TextField(10);
  ft1.setText("0");
  /*
   * String array[] = {"+","-","*","/"}; box = new JComboBox(array);
   */
  final TextField ft2 = new TextField(1);
  ft2.setText("+");
  final TextField ft3 = new TextField(10);
  ft3.setText("0");
  final TextField ft4 = new TextField(20);
  ft4.setText("0.0");
  ft4.setEditable(false);
  Button btu1 = new Button("计算");
  Button btu2 = new Button("重置");

  p2.add(num1);
  p2.add(ft1);
  p2.add(op);
  p2.add(ft2);
  p2.add(num2);
  p2.add(ft3);
  p2.add(result);
  p2.add(ft4);
  p2.add(btu1);
  p2.add(btu2);

  btu1.addActionListener(new ActionListener() {

   @Override
   public void actionPerformed(ActionEvent e) {
    double n1 = Integer.parseInt(ft1.getText());
    String opre = ft2.getText();
    double n3 = Integer.parseInt(ft3.getText());
    try {
     switch (opre) {
     case "+":
      ft4.setText("" + (n1 + n3));
      break;
     case "-":
      ft4.setText("" + (n1 - n3));
      break;
     case "*":
      ft4.setText("" + (n1 * n3));
      break;
     case "/":
      if (n3 == 0) {
       JOptionPane.showMessageDialog(null, "输入错误,除数不能为0",
         "系统信息", JOptionPane.INFORMATION_MESSAGE);
      } else {
       ft4.setText("" + (n1 / n3));
      }
      break;
     default:
      JOptionPane.showMessageDialog(null, "只限于基本(+,-*,/)运算",
        "运算符错误", JOptionPane.ERROR_MESSAGE);

     }
    } catch (Exception e1) {
     e1.printStackTrace();
    }

   }

  });
  btu2.addActionListener(new ActionListener() {

   @Override
   public void actionPerformed(ActionEvent e) {
    // TODO Auto-generated method stub
    try {
     ft1.setText("0");
     ft2.setText("+");
     ft3.setText("0");
     ft4.setText("0.0");

    } catch (Exception e1) {
     e1.printStackTrace();
    }

   }

  });
 }
}

class MyPanel extends Panel {

 public void paint(Graphics g) {
  int width = 160;
  int height = 40;

  // 字体
  g.setColor(Color.BLUE);
  g.setFont(new Font("楷体", Font.BOLD, 40));
  g.drawString("计算器", 130, 90);

 }
}

// windowListener关闭监听器
class MyWindowListener extends WindowAdapter {

 public void windowClosing(WindowEvent e) {
  Window window = (Window) e.getComponent();
  window.dispose();

 }
}
/*
 * class BackGround extends Panel{ public void paint(Graphics g){ //图片 Image i =
 * new ImageIcon("background/1.jpg").getImage(); g.drawImage(i,0, 0,
 * 400,450,null);
 * 
 * } }
 */




  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值